Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/05/2011, 06h15   #1
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 37
Points : 37
Par défaut suppression d'une ligne au sein d'au array

bonjour

j'ai un array du type
Citation:
Array ( [0] => ici j'ai mon texte
je l'est obtenu en faisant
Code :
1
2
3
4
5
6
7
8
 
$fp=fopen("http://www.monsite.fr/", "r" );
while(!feof($fp)) {
  $line.=fgets($fp, 8192); 	
  }	
preg_match('`<div id="center">(.+?)</div>`isU',$line , $matches);	
print_r($matches);  
echo '<div id="moncadre">'.$matches[0].'</div>';
je voudrais supprimer une ligne de texte au sein du array
Citation:
<a href="http://www.monsite.com/" id="toto">les routes à La Réunion</a>
j'ai essayé un tas de solutions sans succès
Code :
1
2
3
4
 
$tab = array($matches );	
$element = 'les routes à La Réunion';
unset($tab[array_search($element, $tab)]);
toutes solutions est bienvenue

a+ gilles
gilles974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 08h11   #2
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Ta valeur contient-elle la balise <a> ou bien juste le texte ?
Car dans le premier cas il est normal que array_search() ne fonctionne pas, il ne travaille que sur valeurs complètes.

La solution la plus simple est de parcourir l'array avec une boucle foreach() et de faire un preg_match sur chaque élément en recherchant ta phrase. Avec l'index fourni par les arguments du foreach tu pourras en cas de réussite du preg_match supprimer ton index.
Code php :
1
2
3
4
5
foreach($mon_tableau as $index => $valeur)
{
  if( preg_match($motif,$valeur) === true )
    unset($mon_tableau[$index];
}
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 08h46   #3
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 37
Points : 37
merci transgohan

mon but est de virer cette ligne
Citation:
<a href="http://www.monsite.com/" id="toto">les routes à La Réunion</a>
je vais creuser ton idee

a+ gilles
gilles974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2011, 10h47   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
pour parser du HTML c'est DOMDocument
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 07h56   #5
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 37
Points : 37
merci pour ta reponse stealth35 mais je crois que DOMDocument marche avec le XML

je peux déjà récupérer la partie qui m’intéresse par
Code :
preg_match('`<div id="center">(.+?)</div>`isU',$line , $matches);
maintenant je veux juste enlever toutes les balises <a href......</a> contenu dans le texte ainsi que leur contenue

pour cela j'ai une regexp
Code :
$element= '#<a [^>](.*)</a>#';
que j'essaye d'intégrer dans une boucle foreach
Code :
1
2
3
4
5
6
7
8
 
foreach($matches as $index => $valeur)
{
  if( preg_match($element,$valeur) === true )
    unset($matches[$index]);
}
// resultat
print_r($matches);
après plusieurs heures à effectuer différents test je cale. Mes balises sont toujours pressente dans le résultat
gilles974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2011, 10h10   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par gilles974 Voir le message
merci pour ta reponse stealth35 mais je crois que DOMDocument marche avec le XML
comme sont nom l'indique ca marche avec tout type de DOM donc du HTML et du XML
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 07h09   #7
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 37
Points : 37
voici un code fonctionnel sur mon serveur avec la version php 5.2.6

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$route = new DOMDocument('1.0', 'UTF-8');   
@$route->loadHTMLFile("http://www.inforoute.re/");	   

foreach($route->getElementsByTagName('div') as $div){
    if($div->getAttribute('id') == "center")
	  {
      $description = '<p>' . $div->getElementsByTagName('div')->item(2)->nodeValue. '</p>';
	  }  
}

$description  = mb_convert_encoding($description, "ISO-8859-1", "auto");	

echo"<div style='text-align: center'><h3>Les travaux sur les routes de l'ile</h3></div>";		

$lesroutes = explode("Travaux :", $description);
for($i = 1; $i < count($lesroutes); $i++){
	echo "<p id=cadreroute style='width: 600px; text-align: justify'><img src='travaux.gif' border='0'>", $lesroutes[$i], "<p />";
}
il me reste un petit problème: chainer des procédures ne marche pas avec la version php version 4.4.4 du serveur de production.

comment rendre se bout de code compatible ?
gilles974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 11h02   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
t'es chez quelle hébergeur ? sinon y'a aussi DOM en php 4
http://www.php.net/manual/fr/book.domxml.php
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 13h22   #9
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 37
Points : 37
hebergeur :1 and 1 sur un serveur virtuel
gilles974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 13h24   #10
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par gilles974 Voir le message
hebergeur :1 and 1 sur un serveur virtuel
donc t'as PHP 4 pourquoi garder une ancienne version ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 14h25   #11
Nouveau Membre du Club
 
Inscription : mai 2004
Messages : 181
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 181
Points : 37
Points : 37
j'ai 2 applies qui tournent qui ne sont pas compatibles php5 et j'ai pas du tout envi de les recoder
gilles974 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2011, 15h01   #12
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par gilles974 Voir le message
j'ai 2 applies qui tournent qui ne sont pas compatibles php5 et j'ai pas du tout envi de les recoder
normalement si c'est bien codé il n'y a aucun soucis de compatibilité entre la version 4 et la 5
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h29.


 
 
 
 
Partenaires

Hébergement Web