Aller au contenu

Regexp sur attribut href


ste

Sujets conseillés

kikooo all

j'ai un flux xhtml, auquel je cherche à détecter tous les liens pour leur appliquer un zeste de functions avant de les réinjecter dans le flux.

mon code :

function recodeURL($html) {
preg_match_all('!href="(.+)"!isU', $str, $href);

$this->xploz = explode('"', $href[0][1]);

       /*** traitement url ***/
$url = parse_url($this->xploz[1]);
     
if( !empty($url['user']) && !empty($url['password']) ) $url['xhtml2pdf']['user_pass'] = $url['user'].':'.$url['password'].'@';
else $url['xhtml2pdf']['user_pass'] = '';
     
$url['xhtml2pdf']['href'] = $url['scheme'].'://'.$url['xhtml2pdf']['user_pass'].$url['host'];
     
if( !empty($url['path']) ) $url['xhtml2pdf']['href'] = $url['xhtml2pdf']['href'].$url['path'];
if( !empty($url['query']) ) $url['xhtml2pdf']['href'] = $url['xhtml2pdf']['href'].'?'.urlencode($url['query']);
if( !empty($url['fragment']) )  $url['xhtml2pdf']['href'] = $url['xhtml2pdf']['href'].'#'.$url['fragment'];
     
       /*** pattern ***/
$search = '!href="(.+)"!isU';
$replace = 'href="'.$url['xhtml2pdf']['href'].'"';

$str = preg_replace($search, $replace, $str);
   return($str);
   
   unset($href, $url, $search, $replace);
   }

sauf que dans l'état, la méthode prend la valeur de l'attribut href et la restitue à l'ensemble des liens qui peut exister dans mon flux html...

au lieu d'appliquer celle qui correspond à son lien !

J'ai certainement loupé quelque chose ... mais quoi ?!

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...