Autor Zpráva
Pavlínka
Profil
Krásný den,
ráda by jsem převedla link v textu z textové podoby do hypertextové (proklikávací)

našla jsem tu jen jediné řešení a to je obří funkce, vytvořená před 18lety :D
na netu je spousta regexu ale všechny počítají s http nebo www (nebo neumím hledat :D)
bohužel se mi už delší dobu nevede najít regex který by počítal i s "exemple.cz"
nemáte někdo v sbírce prosím takový regex?

předem moc děkuji za rady :)


tak čistě náhodou se mi povedlo najít a s trochou úprav i použít,
pro budoucí generace to tu zanechám :D

$textzprava = preg_replace('@(http(s)?)?(://)?(([a-zA-Z])([-\w]+\.)+([^\s\.]+[^\s]*)+[^,.\s])@', '<a href="http$2://$4" target="_blank" title="$0">$0</a>', $textzprava);
anonym_
Profil *
Pavlínka:
Jak si takový regulár představuješ (slovně popsaný)?

Aby to mělo zachytit cokoliv, tak potřebuješ najít string, který nemá mezery, obsahuje alespoň jednu tečku. To URL být může a nemusí.
Pokud to budeš chtít přiblížit reálu, můžeš vyjmenovat whitelist TLD, z nichž jedna bude povinná za alespoň jednou tečkou v tom stringu.

Ale oddělit chybějící mezery za tečkou nebude snadné, toto třeba odkaz být nemá, a to ani kdyby .co byla whitelistovaná TLD: "Dej mi nějaký seznam.Co s sebou na hory".

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:

0