[php]problème preg_replace
Résolu
chico95
-
chico95 -
chico95 -
Bonjour,
voila mon problème, je récupère des informations d'un fichier, je les modifie avec un preg_replace, puis je les affiche dans une listeBox, or quand j'affiche ces informations, un espace s'insère devant...
Voila un exemple de ce que contient mon fichier :
Ce qui est en gras c'est ce que je voudrais extraire puis afficher.
Je fais donc ceci :
J'aimerais savoir pourquoi quand j'affiche ce que j'ai extrait il y a un espace, par exemple quand je fais :
Merci !
a+
voila mon problème, je récupère des informations d'un fichier, je les modifie avec un preg_replace, puis je les affiche dans une listeBox, or quand j'affiche ces informations, un espace s'insère devant...
Voila un exemple de ce que contient mon fichier :
<li><a href="http://localhost/test/bo/bo.php">BO</a></li> <li><a href="http://localhost/test/bw/bw.php">BW</a></li>
Ce qui est en gras c'est ce que je voudrais extraire puis afficher.
Je fais donc ceci :
while(!feof($fichier)){ $ligne=fgets($fichier,4096); // On recupere les noms if(preg_match('#<+#',$ligne)){ // Si il a une balise html, donc un lien, on affiche $ligne=preg_replace('#<li><a href=\"(.+)\">(.+)</a></li>#i','$2',$ligne); // On enlève les balises devant et derrière le nom du menu echo '<option value="'.$ligne.'">'.$ligne.'</option>'; // On affiche dans la listebox le nom sans les balises } }
J'aimerais savoir pourquoi quand j'affiche ce que j'ai extrait il y a un espace, par exemple quand je fais :
echo 'A'.$ligne; il m'affiche A BO et non pas ABO
Merci !
a+
A voir également:
- [php]problème preg_replace
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
2 réponses
Ce n'est pas un espace c'est un problement saut de ligne. Preg_replace remplace le "<li><a href="http://localhost/test/bo/bo.php"></a></li>" de ta chaine de caractère par une chaine vide mais il laisse le saut de ligne.
Si tu veux JUSTE récupérer l'intereur des balises li utilise preg_match_all :
Si tu veux JUSTE récupérer l'intereur des balises li utilise preg_match_all :
$ligne='<li><a href="http://localhost/test/bo/bo.php">BO</a></li> <li><a href="http://localhost/test/bw/bw.php">BW</a></li>'; preg_match_all('#<li><a href=\"(.+)\">(.+)</a></li>#i',$ligne,$matches); print_r($matches);// les résultats commencent à la case 1 du tableau echo '<BR>'; foreach($matches[2] as $match) { echo("A".$match."<BR>\n"); }