2a8a518778702a3f6eb64e5c324a0d02efc1cac2
3 Liens orphelins - Code & integration 2007 : Patrice Vanneufville
4 Toutes les infos sur : http://www.spip-contrib.net/?article2443
7 include_spip('outils/inc_cs_liens');
9 function liens_orphelins($texte){
10 // deja, on s'en va si pas de point...
11 if ($GLOBALS["liens_orphelins"]<0 ||
strpos($texte, '.')===false) return $texte;
12 // prudence 1 : on protege TOUTES les balises <a></a> pour eviter les doublons
13 if (strpos($texte, '<a')!==false)
14 $texte = preg_replace_callback(',<a\s*[^<]+</a>,Ums', 'cs_liens_echappe_callback', $texte);
15 // prudence 2 : on protege TOUS les raccourcis de liens Spip, au cas ou...
16 if (strpos($texte, '[')!==false)
17 $texte = preg_replace_callback(',\[([^][]*)->(>?)([^]]*)\],msS', 'cs_liens_echappe_callback', $texte);
18 // prudence 3 : on protege TOUTES les balises contenant des points, histoire de voir plus clair
19 if (strpos($texte, '<')!==false)
20 $texte = preg_replace_callback(',<[^>]+\.[^>]*>,Ums', 'cs_liens_echappe_callback', $texte);
21 // encore ici, on s'en va si pas de point...
22 if (strpos($texte, '.')===false) return echappe_retour($texte, 'LIENS');
24 // trouve et protege : protocole://qqchose
25 $texte = preg_replace_callback(_cs_liens_HTTP
, 'cs_liens_raccourcis_callback', $texte);
26 // trouve et protege : www.lieu.qqchose ou ftp.lieu.qqchose
27 $texte = preg_replace_callback(_cs_liens_WWW
, 'cs_liens_raccourcis_callback', $texte);
28 // trouve : mailto:qqchose ou news:qqchose
29 if($GLOBALS['liens_orphelins']>0) {
30 $texte = preg_replace_callback(_cs_liens_NEWS
, 'cs_liens_raccourcis_callback', $texte);
31 $texte = preg_replace_callback(_cs_liens_MAILS
, 'cs_liens_email_callback', $texte);
33 return echappe_retour($texte, 'LIENS');