Autor Zpráva
HajekJirka
Profil
Dobré dopoledne,
na stránkách http://www.regularnivyrazy.info/prevedeni-url-na-odkaz.html je popsáno, jak převést URL na odkaz.
Já se chci zeptat jestli to nejde obráceně. Převést odkaz na URL.

Jako, že bych měl <a href="http://example.com/page1?id=13" title="example" target="_blank" a převedlo by mi to na http://example.com/page1?id=13.

Zkoušel jsem různé možnostli, ale bezvýsledně.
Myslel jsem, že to půjde nějak takto, ale bohužel:


if (ereg ("[^http://][a-zA-Z0-9.-]+[a-zA-Z0-9]+[^target=]",$text)) {
echo "ok";
}


Děkuji za jakoukoliv pomoc.
djlj
Profil
HajekJirka
Ten tvůj výraz se, nemýlím-li se, použije na část textu, která nezačíná http://, pokračuje některým z těchto znaků: a-zA-Z0-9.-, znovu některým těchto znaků: a-zA-Z0-9.- a nekončí na target=.

Ty pravděpodobně potřebuješ něco takového:
$text = preg_replace("/(?<!;)((http|https)://[[:alnum:]]+([-_.]?[[: alnum:]])*.[[:alpha:]]{2,4}(/{1}[-_~;:&#=\%?.+A-Za-z0-9]*)*)/U","<a href='\2'>\2</a>", $text);

(Přidej si zpětná lomítka tam, kam patří.)
HajekJirka
Profil
(Přidej si zpětná lomítka tam, kam patří.)

To ale není tak jednoduché. ;-)
Přidal jsem je, ale vypisuje to:
Warning: Delimiter must not be alphanumeric or backslash in ...

Mám je přidané správně?
/(?<!;)((http|https)://[[:alnum:]]+([-_.]?[[: alnum:]])*.[[:alpha:]]{2,4}(/{1}[-_~;:�=\%?.+A-Za-z0-9]*)*)/U","<a href='2'>2</a>
jedno hned na začátku -------------------------------------------------jedno tady před /{1} a jedno před to zpětné lomítko.
Toto téma je uzamčeno. Odpověď nelze zaslat.