J'ai une fonction qui convertit les chaînes comme 'www.example.com' et 'http://example.com' en hyperliens. Il traite également des sous-domaines, par ex. 'http://sub.example.com'.PHP - Fonction de trouver des liens dans le texte
Mais il échoue avec celui-ci - http://www .example.com » et produit les éléments suivants
<a href="http://<a href="http://www.chemica.ru">www.chemica.ru</a>">http://<a href="http://www.chemica.ru">www.chemica.ru</a></a>
S'il vous plaît, quelqu'un peut-il aider? Le problème est que "http: //" et "www." sont ensemble et les deux ont des façons différentes de convertir.
function makeLinks($text){
$text = eregi_replace('(((f|ht){1}tp://)[[email protected]:%_\+.~#?&//=]+)', '<a href="\\1">\\1</a>', $text);
$text = eregi_replace('(www.[[email protected]:%_\+.~#?&//=]+)', '<a href="http://\\1">\\1</a>', $text);
$text = eregi_replace('([_\.0-9a-z-][email protected]([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})', '<a href="mailto:\\1">\\1</a>', $text);
return $text;
}
Les fonctions FYI, eregi_ * sont obsolètes. Vous devriez passer à preg_replace à un moment donné dans un proche avenir. – webbiedave
PCRE permet également des fonctionnalités regex plus avancées que POSIX. –
duplication possible de [Comment extraire les liens http d'un paragraphe et les stocker dans un tableau sur php] (http://stackoverflow.com/questions/6861324/how-to-extract-http-links-from-a-paragraph -et-stocker-les-dans-un-tableau-sur-php) – hakre