Autor | Zpráva | ||
---|---|---|---|
Gandalf Profil * |
#1 · Zasláno: 13. 3. 2008, 10:08:42
Poradí někdo řešení následujícího problému? Mám textový řetězec, kde chci nahradit jednotlivá slova hypertextovými odkazy dle ukázky. Pracuje to docela solidně, dokud nenarazím na slovo, které sice v textu zpočátku není ale po provedení prvního reg. výrazu je obsaženo v tagu. Tzn. když dám další reg. výraz ze slovem třeba class nebo href, tak mi to rozbije kód, poradí někdo jak z toho?
$text="test testy otestovat"; $text=ERegI_replace("test","<a class=\"style\" title=\"Titulek\" href=\"domena.tld\">\\0</a>", $text); $text=ERegI_replace("class","<a class=\"style\" title=\"Titulek\" href=\"domena.tld\">\\0</a>", $text); Nebylo by možné nějak uvedená slova vložit do jednoho reg. výrazu a nahradit to naráz dokud není text ovlivněn předchozí úpravou? Nejde jen o dvě slova ale o desítky. Nebo nějak zahrnout do reg. výrazu uvedený hypertext tak, aby již nevyhovoval ničemu a tak by z něj nebylo nic nahrazeno? Poradíte takový zápis? Díky za rady.. |
||
Gandalf Profil * |
#2 · Zasláno: 13. 3. 2008, 11:56:35
Co tohle..?? Po několika testech to maká.. pokud jsem na něco nezapoměl...
while (@$kontxt=MySQL_Fetch_Array($kon)) { if(ERegI("<a.*</a>", $data[text])) { $data[text]=ERegI_replace("(</a>.*)(".$kontxt[slovo].")(<a.*)","\\1<a class=\"context\" href=\"kontext_url.php?id=".$kontxt[id]."\">\\2</a>\\3",$data[text]); } else { $data[text]=ERegI_replace($kontxt[slovo],"<a class=\"context\" href=\"kontext_url.php?id=".$kontxt[id]."\">\\0</a>",$data[text]); } } určitě by to šlo vložit do jednoho reg. výrazu bez podmínek, ale to už asi nedám... |
||
Měsíček Profil |
#3 · Zasláno: 13. 3. 2008, 11:58:58
Mohu se jen zeptat ..? To se tak bojíte výpisu chyb, že používáte @?
|
||
Gandalf Profil * |
#4 · Zasláno: 13. 3. 2008, 12:14:49
Mohu se jen zeptat ..? To se tak bojíte výpisu chyb, že používáte @?
na lokale samozřejmě ne, ale pokdu k chybě dojde, jako že se to stát může, chybová hláška by mohla být využitelná případným útočníkem... |
||
Gandalf Profil * |
#5 · Zasláno: 13. 3. 2008, 12:26:46
$data[text]=ERegI_replace("(</a>.*)(".$kontxt[slovo].")(<a.*)","\\1<a class=\"context\" href=\"kontext_url.php?id=".$kontxt[id]."\">\\2</a>\\3",$data[text]);
nicméně zsjišťuji, že tohle není dobře... |
||
Měsíček Profil |
#6 · Zasláno: 13. 3. 2008, 12:46:47
, že by uvozovky? :)
|
||
Časová prodleva: 16 let
|
0