Aller au contenu

Regexp sur attribut href


Sujets conseillés

Posté

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 ?!

Veuillez vous connecter pour commenter

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



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