[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 à la ligne php ✓ - Forum PHP
- 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");   
}
                
                