pourquoi ca marche pas??? [PHP] - Programmation
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
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!
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>
Marsh Posté le 23-01-2002 à 12:38:10
j'ai essaye toutes les combinaisons avec \n et \r mais rien a faire
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.
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
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.
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...
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]
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.
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...
@+
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
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';
}
?>
Marsh Posté le 23-01-2002 à 22:50:42
IvanleFou a écrit a écrit : oula c'est koi c truc de fou!!? |
Une RegExp
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]
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...
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...
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]
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.
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
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 |
fait un phpinfo(); tu verras bien...
Cela m'étonne, y-a rien de bien méchant dans le script.
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.
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]