Autor | Zpráva | ||
---|---|---|---|
rak Profil * |
#1 · Zasláno: 6. 1. 2010, 19:02:02
Ahoj,
potreboval bych z nejakeho textu vybrat <strong><span style="color: red;">neco</span></strong> a nahradit to <div class="titulek"><h2>neco</h2></div>. Zjistil jsem ze se na to da pouzit fce preg_replace(), ale bohuzel se v regularnich vyrazech jeste moc nevyznam. Pokousel jsem se sam o neco podobneho, ovsem vratilo mi to chybu:( v $a je ten text. $b = preg_replace('<strong><span style="color: red;">(.*)</span></strong>', '<div class="titulek"><h2>$1</h2></div>', $a); Mohl by mi prosim nekdo pomoct? Predem diky |
||
Radek9 Profil |
#2 · Zasláno: 6. 1. 2010, 19:03:22 · Upravil/a: Radek9
rak:
$b = preg_replace('/\<strong\>\<span style\="color: red;"\>(.*)\<\/span\>\<\/strong\>/i', '<div class="titulek"><h2>$1</h2></div>', $a); Edit: Majkl578: A jo :D |
||
virgo86 Profil |
#3 · Zasláno: 6. 1. 2010, 19:10:06
Radek9:
mohlo by být i takto?? $b = preg_replace('/<strong><span style="color: red;">$a<\/span><\/strong>/i', '<div class="titulek"><h2>$a</h2></div>'); |
||
Radek9 Profil |
#4 · Zasláno: 6. 1. 2010, 19:13:57
virgo86:
Ne. Pracoval by to jako str_replace. Tudíž by to nenahrazovalo cokoliv, ale $a. |
||
Majkl578 Profil |
#5 · Zasláno: 6. 1. 2010, 19:30:36
[#2] Radek9
Escapujeme nepotřebné a neescapujeme potřebné. Znaky, které je třeba escapovat jsou zde. Správné a správně funkční řešení: $input = '<strong><span style="color: red;">neco</span></strong>'; $output = preg_replace('~\<strong\>\<span style\="color\: red;"\>(.*)\</span\>\</strong\>~iU', '<div class="titulek"><h2>$1</h2></div>', $input); var_dump($output); Jen bych ještě zdůraznil, že modifikátor U je zde důležitý, jinak by se při více výskytech nahradilo vše od počátku prvního nálezu do konce posledního, ne jednotlivě. |
||
Časová prodleva: 14 let
|
0