Autor Zpráva
Gandalf
Profil *
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 *
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
Mohu se jen zeptat ..? To se tak bojíte výpisu chyb, že používáte @?
Gandalf
Profil *
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 *
$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
, že by uvozovky? :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: