"Yankılandı" a php değiştirme

2 Cevap php

Benim veritabanında saklanan bir içerik yankı PHP kullanıyorum. İçerik herhangi bir tür veri taşıyan bir DIV.

Sorun kimliğini bilmiyorum ve ben daha bir kez daha onları görüntülemek için çalışırsanız ben bu DIV'leri ile bazı sorunları olması.

So, the idea is to modify the DIV id each time I'd like to display them. Something like this:

<?php modify_div_id($data,"id-456"); ?>

Bunu nasıl yapıyor hakkında gitmek istiyorsunuz?

2 Cevap

Bu çirkin, ama o çalıştığını düşünüyorum.

function modify_div_id( $data, $new_id ) {
  return preg_replace( '/(<div[^>]+?id=)("|\')(.*?)("|\')/i', '$1$2' . $new_id . '$4', $data );
}

Gitmek için en iyi yolu, niteliğini değiştirmek için bir XML ayrıştırıcı kullanmaktır.

Edit: işlev zaten bir id niteliği var div varsayar.

Edit #2
It seems to be working!

jwandborg@sophie:~$ cat | php -r "eval( file_get_contents('php://stdin') );"
function modify_div_id( $data, $new_id ) {
  return preg_replace( '/(<div[^>]+?id=)("|\')(.*?)("|\')/i', '$1$2' . $new_id . '$4', $data );
}
echo modify_div_id('<div pajas="pajas" id="fisk">Innehåll</div>', 'nytt_id');

# Result: <div pajas="pajas" id="nytt_id">Innehåll</div>

Sizin soru belirsiz tür ifadeli.

Öncelikle, HTML elemanları için id nitelik yani yankılanan, benzersiz olmalıdır benzersiz bir id uygundur (Ayrıca kullanabileceğiniz bir class).

Eğer veritabanı sorgulanan ve, diyelim ki, bir geri id içeren bir dizi ve içeriği aldıysanız aşağıdaki gibi işlevini kullanabilirsiniz:

function modify_div_id($data, $id) {
  echo "<div id='$id'>$data</div>";
}

Sadece bir örnek.