Tak jsem vm to sem kopnul z manuálu celý:
// $document should contain an HTML document.
// This will remove HTML tags, javascript sections
// and white space. It will also convert some
// common HTML entities to their text equivalent.
$search = array ("'<script[^>]*?>.*?</script>'si", // Strip out javascript
"'<[\/\!]*?[^<>]*?>'si", // Strip out html tags
"'([\r\n])[\s]+'", // Strip out white space
"'&(quot|#34);'i", // Replace html entities
"'&(amp|#38);'i",
"'&(lt|#60);'i",
"'&(gt|#62);'i",
"'&(nbsp|#160);'i",
"'&(iexcl|#161);'i",
"'&(cent|#162);'i",
"'&(pound|#163);'i",
"'&(copy|#169);'i",
"'&#(\d+);'e"); // evaluate as php
$replace = array ("",
"",
"\\1",
"\"",
"&",
"<",
">",
" ",
chr(161),
chr(162),
chr(163),
chr(169),
"chr(\\1)");
$text = preg_replace ($search, $replace, $document);
Ale jinak mi moc použití preg_replace není jasný. Moc se v tom nevyznám, jak tam nacpat jednotlivé hodnoty. :-(
2Bohdan >2Pavel: strednik neni imho soucasti prikazu :-)
Však já to nijak zle nemyslel :) Středník není součástí příkazu, ale ukončuje ho, alespoň tak si to mylsím já.
Chtěl jsem jen přispět svou troškou do mlýna, aby to dílo se zmatky kolem preg_replace() bylo dokonáno!
2Andrew: no proste tam das 2pole a ono se postupne udela vsechno :)
2Pavel: rekl bych ze strednik a prikaz jsou hiearchicky na stejne urovni, ale myslim ze je to uplne jedno :-)
Mno, bohužel mi to tak právě nefungovalo (nebo jsem někde něco udělal blbě). Dám příklad. Chci v chatu nahradit znaky smajlíků jejich obrázky. Tak udělám tyto pole:
$search=array(":-)",":-I",":-(");
$replace=array("<img src='pic1.gif'>","<img src='pic2.gif'>","<img src='pic3.gif'>");
$text = preg_replace ($search, $replace, $text);
Nějak tam zlobí ty dvojtečky, nebo co. Neměl jsem ještě moc času si s tím hrát, tak to budu ještě zkoušet různě kombinovat. A taky mi nejsou jasný ty parametry, ale to snad najdu ještě v manuálu na webu.
nojo, chce to backslash pred kontrolni znaky, takze z toho co tam mas: . ( ) : = < >
spravne je to asi takle:
$search=array("\:-\)","\:-I","\:-\(");
$replace=array("\<img src\='pic1.gif'\>","\<img src\='pic2.gif'\>","\<img src\='pic3.gif'\>");
$text = preg_replace ($search, $replace, $text);
muzes taky pouzit funkci preg_quote..
Mno jo, díkes. Já když zkoušel backslash, tak jsem úplně zapomněl na < >. Ta moje hlava :-)