Tu som riesil preg_replace ktore pouzivam:
https://www.pcforum.sk/spravne-nahradenie-eregi-replace-vt183174.htmlnedari sa mi vyriesit jeden problem.
Momentalne mam kod:
Kód:
$prispevok["text"] = preg_replace("/(^| |>)(www([.]?[a-zA-Z0-9_\/-?])[^< ]*)/i", "\\1<a href=\"http://\\2\" target=\"_blank\" >\\2</a>", $prispevok["text"]);
$prispevok["text"] = preg_replace("/(^| |>)(http([s]?):\/\/([.]?[a-zA-Z0-9_\/-?])[^< ]*)/i", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $prispevok["text"]);
- ak kod obsahuje www link tak mi to pekne namapuje a je to klikatelne. OK.
Moja poziadavka: Ak $prispevok["text"] obsahuje tieto presne specificke www adresy:
http://www.adresa1.com,
http://www.adresa2.com,
http://www.adresa3.com ... v hociakom tvare, t.j. priklad
http://www.adresa1.com/clanky/123/clanok1 atd atd ...
Tak pre tieto 3 adresy chcem aby som to mal klikatelne, ale text viditelny na webe bude "Link na adresy"
Zatial to mam takto:
Kód:
if (stripos($prispevok["text"],'adresa1.com') !== false || stripos($prispevok["text"],'adresa2.com') !== false || stripos($prispevok["text"],'adresa3.com') !== false)
{ $premenna = 'Link na adresy'; } else {$premenna = '\\2';}
$prispevok["text"] = preg_replace("/(^| |>)(www([.]?[a-zA-Z0-9_\/-?])[^< ]*)/i", "\\1<a href=\"http://\\2\" target=\"_blank\" >$premenna</a>", $prispevok["text"]);
$prispevok["text"] = preg_replace("/(^| |>)(http([s]?):\/\/([.]?[a-zA-Z0-9_\/-?])[^< ]*)/i", "\\1<a href=\"\\2\" target=\"_blank\">$premenna</a>", $prispevok["text"]);
Ak je v premennej $prispevok["text"] len 1 adresa napr: "Nejaky text
http://www.adresa1.com a dalsi text"
- vsetko funguje spravne
Problem je ak v premennej $prispevok["text"] je viacero adries, napr.: "Nejaky text
http://www.adresa1.com a dalsi text a dalsia adresa ktora nema byt upravena na Link na adresy
http://www.inaadresa.com"
vtedy vsetky adresy sa mi upravia a klikatelny text Link na adresy je aj na adrese, na ktorej by nemal byt, na
http://www.inaadresa.comDakujem, snad som to vysvetlil
