/*------------------------------*/
|
/*
|
Titre : Extracteur de liens A HREF dans une chaine
|
|
Date édition : 14 Fev 2019
|
Date mise a jour : 17 Aout 2019
|
|
Rapport de la maj:
|
- fonctionnement du code vérifié
|
- modification de la description
|
*/
|
/*------------------------------*/
|
|
function arrays2hash($array_keys , $array_values){
|
if (!is_array($array_keys) || !is_array($array_values)){
|
return array();
|
}
|
if (count($array_keys) != count($array_values)){
|
return array();
|
}
|
$retour = array();
|
while(count($array_keys) > 0){
|
$retour[array_pop($array_keys)] = array_pop($array_values);
|
}
|
return $retour;
|
}
|
|
function link_extractor_string($chaine){
|
$retour = array();
|
while($x = strstr($chaine, "<a ")){
|
$href = substr($x, 3, strpos($x, ">") -3);
|
$chaine = substr($x, strpos($x, ">") +1);
|
|
preg_match_all("/\b([^\s]+)\s*=\s*(\"|\')(.*?)(\"|\')\s/", " $href ",
|
$attribut);
|
$details = arrays2hash($attribut[1], $attribut[3]);
|
$details['tag'] = $href;
|
$details['texte'] = substr($chaine, 0, strpos(strtolower($chaine), "</a>")
|
);
|
#print "\n";
|
$chaine = substr($chaine, strpos(strtolower($chaine), "</a>") +4);
|
|
$image2 = preg_replace("/\b([^\s]+)\s*=\s*(\"|\')([\s]*?)(\"|\')\s/", "",
|
" $href ");
|
preg_match_all("/\b([^\s]+)\s*=\s*([^\s]*?)\s/", " $image2 ", $attribut);
|
|
// l'ordre du merge est important : on ecrase les valeurs trouvees sans
|
// guillemets
|
// par celle trouvee avec.
|
$details = array_merge( arrays2hash($attribut[1], $attribut[2]), $details)
|
;
|
array_push($retour, $details);
|
}
|
return $retour;
|
}
|
| ?> |