Sziasztok!
A következő PHP függvény ereg_replace()-szel működik, de preg_replace()-szel nem:
$html=preg_replace("<[^>]+>","*",$html);
A $html
változóban lévő szabványos HTML kódban az összes taget csillagra szeretném cserélni. Meg tudja valaki mondani, hogy preg_replace()-szel miért nem működik? ereg_replace()-szel tökéletes.
- 1789 megtekintés
Hozzászólások
$html=preg_replace("#<[^>]+>#","*",$html);
- A hozzászóláshoz be kell jelentkezni
Működik, köszönöm!
--
Kum G.
Linux pólót a PingvinBoltból!
- A hozzászóláshoz be kell jelentkezni
A preg_replace egy lebutított regexp, előnye hogy gyors, hátránya, hogy sok mindent nem tud, és picit más a szintaxisa.
(A perl-es regexp kompatíbilis a teljes regexpel, de fordítva ez nem igaz. Pl.: preg nem fog jól matchelni a következőre: "<a>.*</a>", helyette "|<a>[^<]*</a>|" irandó)
Olvasnivaló: http://www.php.net/manual/en/reference.pcre.pattern.posix.php
- A hozzászóláshoz be kell jelentkezni
Tehát a lényeg, hogy /-t (vagy a doksiban felsorolt pár másik szimbólumot) tegyek a kifejezés elé és mögé?
--
Kum G.
Linux pólót a PingvinBoltból!
- A hozzászóláshoz be kell jelentkezni
Igen. Valamint ha számíthatsz rá, hogy több sorba törik (azaz szeretnél a "[^>]"-el \n-re is matchelni), akkor multiline modifier is kell, különben nem műx.
- A hozzászóláshoz be kell jelentkezni
--
- A hozzászóláshoz be kell jelentkezni