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 * |
#2 · Zasláno: 3. 3. 2023, 14:12:05
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". |
||
Časová prodleva: 2 roky
|
0