[PHP] pourquoi ca marche pas???

pourquoi ca marche pas??? [PHP] - Programmation

Marsh Posté le 22-01-2002 à 19:40:20    

J'esssais de recuperer une chaine de caracteres sur un page web mais ca marche pas:
 
Ce script marche:
if(!$file) {  
  echo "<p>Impossible d'ouvrir le fichier</p>.\n";  
  exit;
   }
while (!feof($file)) {
    $line = fgets($file, 1024);
    if (eregi("<title>(.*)</title>", $line, $out)) {
      $result = $out[1];
      break;
    }
  }
 
Par contre celui-la pas moyen de le faire marcher, il retourne rien:
if(!$file) {  
  echo "<p>Impossible d'ouvrir le fichier</p>.\n";  
  exit;
   }
while (!feof($file)) {
    $line = fgets($file, 1024);
    if (eregi("Results Received</td><td>(.*)</td>", $line, out)) {
      $result = $out[1];
      break;
    }
  }
 
Voici un extrait de la page web. je veux recuperer la valeur en gras:
</a>
</td>
</tr>
<tr>
<td>
Results Received</td>
<td>
9948
</td>
</tr>
<tr>
<td>
 
Quelqu'un peut m'aider?

 

[edtdd]--Message édité par IvanleFou--[/edtdd]

Reply

Marsh Posté le 22-01-2002 à 19:40:20   

Reply

Marsh Posté le 22-01-2002 à 19:55:25    

c normal, cherche un motif ki n'existe pas!!
 
essai ca ou un truc du genre :
 
egi("Results Received</td>.*<td>(.*)</td>
ou
egi("Results Received</td>[\n\r]<td>(.*)</td>
 
enfin tu voi ce ke je veux dire :??:


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 22-01-2002 à 20:08:34    

pkoi tu dis que le motif n'existe pas?
 
C'est parce que je lui ai pas indique les sauts de ligne?
 
Je l'ai po fait car je sais po comment faut faire!

Reply

Marsh Posté le 22-01-2002 à 22:31:06    

c pour ca que j'ai ecris ca :
 
egi("Results Received</td>.*<td>(.*)</td>  
ou  
egi("Results Received</td>[\n\r]<td>(.*)</td>


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 23-01-2002 à 12:38:10    

j'ai essaye toutes les combinaisons avec \n et \r mais rien a faire :cry:

Reply

Marsh Posté le 23-01-2002 à 12:45:15    

et si tu essayais avec les expressions régulières perl, car elles,  elles permettent le pattern sur plusieurs lignes.

Reply

Marsh Posté le 23-01-2002 à 14:01:13    

ben le perl j'en ai jamais fait, je connais pas du tout.
 
Sinon j'ai compris pkoi ca peut pas marcher. Tout simplement car ds ma variable $line il ne pas pas y avoir simultanement le texte qui precede le nb que je veux recup et le nb lui meme. Car entre les 2 ya des sauts de lignes. Et comme la fonction fgets recupere une chaine de caractere jusqu'au saut de ligne...
 
C grille koi :(

Reply

Marsh Posté le 23-01-2002 à 14:14:20    

IvanleFou a écrit a écrit :

ben le perl j'en ai jamais fait, je connais pas du tout.
 
Sinon j'ai compris pkoi ca peut pas marcher. Tout simplement car ds ma variable $line il ne pas pas y avoir simultanement le texte qui precede le nb que je veux recup et le nb lui meme. Car entre les 2 ya des sauts de lignes. Et comme la fonction fgets recupere une chaine de caractere jusqu'au saut de ligne...
 
C grille koi :(  




 
Tu peux donner un exemple de fichier à traiter, c'est toujours une valeur numérique qui est à récuperer ??
 
Merci.

Reply

Marsh Posté le 23-01-2002 à 19:05:23    

Bon alors voici la page que je veux traiter:
http://www.multimania.com/bestofti92/exemple.htm
 
Et je veux pouvoir recup les valeurs result received, total CPU time...

Reply

Marsh Posté le 23-01-2002 à 19:15:03    

esais sa
 
if(!$file) {  
 echo "<p>Impossible d'ouvrir le fichier</p>.\n";  
 exit;
  }
while (!feof($file)) {
   $line = fgets($file, 1024);
   if (eregi("Results Received<\/td>[\\n\\r]<td>(.*)<\/td>", $line, out)) {
     $result = $out[1];
     break;
   }
 }

 

[edtdd]--Message édité par bozocarzu--[/edtdd]

Reply

Marsh Posté le 23-01-2002 à 19:15:03   

Reply

Marsh Posté le 23-01-2002 à 22:06:56    

Nan marche tjs pas. A mon avis ca peut pas marcher comme ca.
 
J'explore une autre soluttion. en utilisant le fonction fgetss. Elle est similaire a fgets a par qu'elle supprime les balises html. Si l'on copie la page html ds un fichier avec cette fonction et en supprimant les sauts de ligne apres a mon avis ca doit etre galette pour en recuperer le contenu.
 
Pbr: c bcq plus lourd a faire.

Reply

Marsh Posté le 23-01-2002 à 22:13:10    

IvanleFou a écrit a écrit :

Nan marche tjs pas. A mon avis ca peut pas marcher comme ca.
 
J'explore une autre soluttion. en utilisant le fonction fgetss. Elle est similaire a fgets a par qu'elle supprime les balises html. Si l'on copie la page html ds un fichier avec cette fonction et en supprimant les sauts de ligne apres a mon avis ca doit etre galette pour en recuperer le contenu.
 
Pbr: c bcq plus lourd a faire.  




 
Je viens de voir l'exemple, je suis dessus, je donne bientôt la soluce...
 
@+

Reply

Marsh Posté le 23-01-2002 à 22:39:33    

fly LM a écrit a écrit :

 
 
Je viens de voir l'exemple, je suis dessus, je donne bientôt la soluce...
 
@+  




 
Merci c sympa

Reply

Marsh Posté le 23-01-2002 à 22:44:54    

<?php
 $file = 'exemple.html';
 $_get = '';
 
 if($fp = fopen($file,"r" ))
 {
  while(!feof($fp))
  {
   $_get .= fgets($fp, 1024);
 
  }
  fclose($fp);
 }
 else
 {
  echo 'Impossible d\'ouvrir le fichier '.$file;
 }
 
 if(preg_match("/received[^\<]+?<\/td>[^\<]+?<
td>([^\<]+?)<\/td>/i",$_get,$reg))
 {
  echo 'Result : '.$reg[1];
 }
 else
 {
  echo 'Pas de reconnaissance';
 }
 
?>

Reply

Marsh Posté le 23-01-2002 à 22:49:41    

oula c'est koi c truc de fou!!? :ouch:  :heink:

Reply

Marsh Posté le 23-01-2002 à 22:50:42    

IvanleFou a écrit a écrit :

oula c'est koi c truc de fou!!? :ouch:  :heink:  




 
Une RegExp :lol: :lol:

Reply

Marsh Posté le 23-01-2002 à 22:56:44    

heuuu... et ca marche chez toi?
 
Moi ca me sort: "Pas de reconnaissance"

 

[edtdd]--Message édité par IvanleFou--[/edtdd]

Reply

Marsh Posté le 23-01-2002 à 23:00:07    

IvanleFou a écrit a écrit :

heuuu... et ca marche chez toi?
 
Moi ca me sort: "Pas de reconnaissance "Pas de reconnaissance"  




 
Oui ça marche  
 
Je reteste...

Reply

Marsh Posté le 23-01-2002 à 23:03:10    

J'ai carrement mis :
 
$file = 'http://www.multimania.com/bestofti92/exemple.htm';
 
et cela me sort bien le résultat...

Reply

Marsh Posté le 23-01-2002 à 23:03:26    

pourtant j'ai fais un copier/coller: http://www.multimania.com/bestofti92/essai.php3

 

[edtdd]--Message édité par IvanleFou--[/edtdd]

Reply

Marsh Posté le 23-01-2002 à 23:22:43    

Dans le doute je l'ai mis chez Free :
 
http://fly.captain.free.fr/test/
 
Ca marche.

Reply

Marsh Posté le 25-01-2002 à 16:03:49    

est ce que ca pourrait etre multimania qui ait desactive une fonction et pas free?
 
parce que moi ya rien a faire :cry:

Reply

Marsh Posté le 25-01-2002 à 16:21:40    

IvanleFou a écrit a écrit :

est ce que ca pourrait etre multimania qui ait desactive une fonction et pas free?
 
parce que moi ya rien a faire :cry:  




 
fait un phpinfo(); tu verras bien...
Cela m'étonne, y-a rien de bien méchant dans le script.

Reply

Marsh Posté le 25-01-2002 à 17:08:04    

ben alors je sais po car j'ai fais un copier/coller de ton script ds un fichier a l'extension php3. :??:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed