X-Git-Url: http://git.cyclocoop.org/?p=ptitvelo%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Ffiltres_mini.php;fp=www%2Fecrire%2Finc%2Ffiltres_mini.php;h=4621ebc6b03377b925bb54bd2d0e1c1d6e5d9b9e;hp=cc10091f126bf33e8c5e405385b9c48f5f5dbef1;hb=f854641371bdfbaba8fbab6212853d9795ba8cc8;hpb=d18fcb8f27a4016e3fa7b50a9b2255d529dca543 diff --git a/www/ecrire/inc/filtres_mini.php b/www/ecrire/inc/filtres_mini.php index cc10091..4621ebc 100644 --- a/www/ecrire/inc/filtres_mini.php +++ b/www/ecrire/inc/filtres_mini.php @@ -100,22 +100,22 @@ function protocole_implicite($url_absolue){ // ne s'applique qu'aux textes contenant des liens // http://doc.spip.org/@liens_absolus function liens_absolus($texte, $base='') { - if (preg_match_all(',(<(a|link|image)[[:space:]]+[^<>]*href=["\']?)([^"\' ><[:space:]]+)([^<>]*>),imsS', + if (preg_match_all(',(<(a|link|image|img|script)\s[^<>]*(href|src)=[^<>]*>),imsS', $texte, $liens, PREG_SET_ORDER)) { foreach ($liens as $lien) { - $abs = url_absolue($lien[3], $base); - if ($abs <> $lien[3] and !preg_match('/^#/',$lien[3])) - $texte = str_replace($lien[0], $lien[1].$abs.$lien[4], $texte); - } - } - if (preg_match_all(',(<(img|script)[[:space:]]+[^<>]*src=["\']?)([^"\' ><[:space:]]+)([^<>]*>),imsS', - $texte, $liens, PREG_SET_ORDER)) { - foreach ($liens as $lien) { - $abs = url_absolue($lien[3], $base); - if ($abs <> $lien[3]) - $texte = str_replace($lien[0], $lien[1].$abs.$lien[4], $texte); + foreach(array('href', 'src') as $attr) { + $href = extraire_attribut($lien[0], $attr); + if (strlen($href)>0) { + $abs = url_absolue($href, $base); + if ($href != $abs and !preg_match('/^#/',$href)) { + $texte_lien = inserer_attribut($lien[0], $attr, $abs); + $texte = str_replace($lien[0],$texte_lien,$texte); + } + } + } } } + return $texte; }