jak byste zapsali znak <, po kterem NEnasleduji slova font, b, i...? jako kdybyste chteli zrusit vsechny < pokud netvori tag <font> <b> <i> a podobny
a podobny?
to jako na zmenu pisem?
tim podobny sem myslel ty ktery si nadefinujes, jako definujes mnozinu znaku [] a opak mnoziny [^] tak ja bych potreboval opak mnoziny slov
Zabýval jsem se podobným problémem. Chtěl jsem, aby mi skript nahradil všechny & za & jen v případech, kdy nejsou součástí nějaké entity.
Vyřešil jsem to takto:
$string = PReg_Replace('/&(?![a-zA-Z]{2,7};|[a-z]{3}[123];|[a-z]{4}[1234]{2};|there4;|thetasym;|#[0-9]{2,4};)/', '&', $string);
Tvůj problém by tedy měl jít řešit obdobně:
$string = PReg_Replace('/<(?![a-zA-Z]{1,10}>)/', '<', $string);
$string = PReg_Replace('/(?!<[a-zA-Z]{1,10})>/', '>', $string);
Zkus to...
... nahradit všechny & za & amp; ...
Toto fórum mě už poslední dobou sere. Proč zase polyká entity, když to dříve nedělalo?!
asi si mne nerozumel, nechtel sem zrusit vsechny tagy, ale ponechat nektery neskodny jako <font>, <span>, <b>, <img> .. vyzkousel sem neco podobnyho jako ty a funguje to, dik
no ja bych vyuzil toho ze pcre ma pohlizeni..
<HTML>pohlizeni?
rekneme ze mas retezec: "ahoj jak 12 se mas"
v posixu nemuzes udelat: ".+([0-9]*).+" abys vytahl cislo takovymto zpusobem
protoze to bere vsechny znaky ale nepodiva se do predu (nepohlizi na ten retezec logicky)</HTML>
mno nevim jestli logicky, i pcre pohlti 12...?
preg_replace ("/<(?!font\s|\/font|img\s|b|\/b|i|\/i|u|\/u)/","\\1",$str)
jeste je problem ze preg_replace je case-insensitive, ale tomu se snad lidi prizpusobi .. leda ze bych prisel na to cim v posixu nahradit podminku "?!"
tak ne posix ..
preg_replace ("%<(?!font\s|\/font|img\s|b|\/b|i|\/i|u|\/u)%i","\\1",$str)
.. kdyby to nekdo schanel