J'ai ce code regex, qui devrait transformer toutes sortes d'URL différentes en liens dans du texte.trouver toutes les URLs (liens) dans le texte avec php
Le code preg_replace est:
$regex = '@((https?://)?([-\w]+\.[-\w\.]+)+\w(:\d+)?(/([-\w/_\.]*(\?\S+)?)?)*)@';
$text = preg_replace($regex, '<a href="$1">$1</a>', $item);
maintenant il fonctionne pour presque toutes les URL que vous pouvez imaginer, mais les problèmes que j'ai sont des virgules et des caractères spéciaux dans les URL ...
Le problème est me faire:
http://www.sdfsdfsdf.sd/si/391,1000,1/more.html
http://sdfsddsdf-sdfsdfds.sr/component/option,com_contact/Itemid,3/lang,si/
drôle ici à ceux stackoverflow deux sont OK :)
Merci, mes meilleures salutations,
le problème avec la virgule est que si vous avez alors "http://www.avto.si/, http://www.avtooglasnik.com/, http://www.avtooglasi.com/", ces trois seraient apparié avec la virgule, qu'est-ce qui est faux ofcourse :) une idée? – Luka
@Luka: non, seul le dernier serait associé à la virgule à l'intérieur, les autres ne seraient appariés que comme des domaines avec la virgule non prise en compte. La virgule doit être après une barre oblique ('/') pour correspondre à une URL basée sur l'expression régulière au-dessus de –
mais vous n'avez jamais d'URL qui commence par une virgule, donc cela devrait être invalide, pouvez-vous faire comme ça? merci pour réponse de toute façon, mieux :) – Luka