Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1397 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Recuperer un mot n d'une page

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recuperer un mot n d'une page

n°1704998
exeed
Posté le 19-03-2008 à 22:17:05  profilanswer
 

Bonjour,
 
Prenons une page php ultra simple:
aucune balise (même pas de <html> )
Juste un texte.
 
Disons que cette page est sur un serveur distant.
Comment récupérer le 5eme mot du texte(exemple) de cette page sans la télécharger (si possible)?
 
J'ai entendu parler des regexp, mais sans balises comment faire?
 
Merci
 

mood
Publicité
Posté le 19-03-2008 à 22:17:05  profilanswer
 

n°1705000
CyberDenix
Posté le 19-03-2008 à 22:38:50  profilanswer
 

Tu utilises les espaces comme délimiteur.


---------------
Directeur Technique (CTO)
n°1705082
skeye
Posté le 20-03-2008 à 10:05:54  profilanswer
 

exeed a écrit :


Disons que cette page est sur un serveur distant.
Comment récupérer le 5eme mot du texte(exemple) de cette page sans la télécharger (si possible)?


Comment ça sans la télécharger? [:pingouino]
Tu veux savoir ce qu'il y a dans un fichier sans jamais récupérer le fichier?[:roane]


---------------
Can't buy what I want because it's free -
n°1705262
exeed
Posté le 20-03-2008 à 12:07:56  profilanswer
 

Si c'est pas possible tant pis ,je télécharge (je pensais pouvoir me connecter ou un truc comme çà)
 
Donc j'ai un peu regardé , pour prendre le
 

Code :
  1. <?php
  2. $texte="La valeur que je veux capturer est: 78996";
  3. print $texte;
  4. echo '\n';
  5. $texte=ereg_replace("#\w \w \w \w \w \w \w: ([0-9]*)$#","$1",$texte);
  6. print $texte;
  7. ?>


 
 
Ca remplace $texte par un nombre variables de chiffres situes en fin de chaine , non?
 
(Cela ne fonctionne pas évidemment :))
Une solution?


Message édité par exeed le 20-03-2008 à 12:08:19
n°1705265
skeye
Posté le 20-03-2008 à 12:09:47  profilanswer
 

M'enfin pourquoi batailler? Tu récupères ton fichier, tu explode() le contenu avec les espaces/retours à la ligne comme séparateurs, et tu lis la nième valeur du tableau obtenu?


Message édité par skeye le 20-03-2008 à 12:10:03

---------------
Can't buy what I want because it's free -
n°1705275
exeed
Posté le 20-03-2008 à 12:19:39  profilanswer
 

:) En effet...merci pour cette solution ;)
 
Maintenant si je veux lire le 57 du (57), je fais  
$texte="(57)";';
$texte=ereg_replace("\(([[digits]]*)\)","$1",$texte); ??
 

n°1705328
art_dupond
je suis neuneu... oui oui !!
Posté le 20-03-2008 à 14:06:18  profilanswer
 

note:  utilise l'argument limit de explode


---------------
oui oui
n°1705329
exeed
Posté le 20-03-2008 à 14:07:02  profilanswer
 

Bon j'ai un peu avancé depuis tout a l'heure mais j'ai tout de même un souci:
 
J'ai un id de session qui fonctionne sur une page.
 
Comment le "passer" c'est a dire "s'authentifier" sur la fameuse page a télécharger?
 
Pour le moment je fais ca:
 
<?php session_id('id connu');  
session_start();
$url=url.session_name()."=".session_id();
$fp = fopen($url,"r" );  
$contenu="";
while(!feof($fp))
{
$contenu .= fgets($fp,1024);
}  
 
$lines = explode(" ", $contenu);
 
 
La page s'enregistre correctement, mais ce n'est pas la bonne , en effet le serveur m'envoie vers une page "Vous n'êtes pas authentifié"
 
Voila

n°1705410
Nashii89
Debian Powerfull Imagination
Posté le 20-03-2008 à 15:09:25  profilanswer
 

Utilises curl à la limite.


---------------
Debian Addict - Vista Victim .. - Etudiant Ingénieur [Le Pas-Blog - Relations Ecrites]
n°1705474
exeed
Posté le 20-03-2008 à 16:23:33  profilanswer
 

C'est une idée :)
 
J'ai donc trouvé cette doc :http://julp.developpez.com/php/curl/
 
Je pourrai utiliser ce bout de code :

Code :
  1. function http_fetch_url($url, $timeout = 10, $userpwd = '')
  2. {
  3.     $ch = curl_init($url);
  4.     curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
  5.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  6.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  7.     if ($userpwd) {
  8.         curl_setopt($ch, CURLOPT_USERPWD, $userpwd);
  9.     }
  10.     $data = curl_exec($ch);
  11.     curl_close($ch);
  12.     return $data;
  13. }
  14. // Exemple d'utilisation :
  15. if (($content = fetch_url('http://www.monsite.fr/zone_privee/sqldump.php', 10, 'utilisateur:mot_de_passe')) === FALSE) {
  16.     die("Une erreur est survenue" );
  17. } else {
  18.     echo htmlentities($content);
  19. }


 
Combiné a une reutlisation d'une session :

Code :
  1. /**
  2. * Deuxième partie : réutilisation de la session sur une page tierce
  3. **/
  4. $ch = curl_init(PAGE_PRIVEE . $sid);
  5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  6. curl_setopt($ch, CURLOPT_COOKIEFILE, realpath('cookie.txt'));
  7. $ret = curl_exec($ch);
  8. if ($ret === FALSE) {
  9.     die(curl_error());
  10. }
  11. curl_close($ch);
  12. echo $ret;


 
et a mon bout de code pour découper la string en mots.
 
Question: y a t'il une option de curl permettant de rentrer moi l'id de session php en lieu et place du cookie?
 
 
 

mood
Publicité
Posté le 20-03-2008 à 16:23:33  profilanswer
 

n°1705476
Nashii89
Debian Powerfull Imagination
Posté le 20-03-2008 à 16:27:47  profilanswer
 

Euh, ce doit être faisable vu que c'est juste un stockage sous forme d'un fichier texte, tu pourrais émuler l'existence de ce fichier je pense.
Mais bon, tu risques de t'embêter pour rien ^^


---------------
Debian Addict - Vista Victim .. - Etudiant Ingénieur [Le Pas-Blog - Relations Ecrites]
n°1705570
exeed
Posté le 20-03-2008 à 18:28:43  profilanswer
 

Comment ferais tu a ma place (plus simple :)) ?

n°1705573
Nashii89
Debian Powerfull Imagination
Posté le 20-03-2008 à 18:31:05  profilanswer
 

Bah utiliser le fichier cookie pour ton identification, et le réutiliser pour accéder aux données protégées.


---------------
Debian Addict - Vista Victim .. - Etudiant Ingénieur [Le Pas-Blog - Relations Ecrites]
n°1705885
exeed
Posté le 21-03-2008 à 11:01:36  profilanswer
 

Ca ne fonctionne pas.  
 
Peut etre en modifiant le header (j'ai le numero de session).
 
J'ai teste un truc: j'arrive a me connecter a la page en faisant:
 
header(location:blabla?PHPSESSID=mon numero);
 
Mais fopen lui n'y arrive pas, une fonction plus a meme de realiser cela existerait elle?
 

n°1706115
Nashii89
Debian Powerfull Imagination
Posté le 21-03-2008 à 14:41:40  profilanswer
 

créer un socket complet à la limite et paramêtrer toi même tes headers ...


---------------
Debian Addict - Vista Victim .. - Etudiant Ingénieur [Le Pas-Blog - Relations Ecrites]
n°1706153
texaff
Posté le 21-03-2008 à 15:33:07  profilanswer
 

avec curl tu peux faire un POST...
http://us3.php.net/manual/fr/function.curl-exec.php pour plus d'infos... je l'ai utilisé c'est tres pratique car tu peux te logguer sur un serveur distant, et recuperer les valeurs voulu...

n°1706232
Nashii89
Debian Powerfull Imagination
Posté le 21-03-2008 à 16:50:00  profilanswer
 

texaff a écrit :

avec curl tu peux faire un POST...
http://us3.php.net/manual/fr/function.curl-exec.php pour plus d'infos... je l'ai utilisé c'est tres pratique car tu peux te logguer sur un serveur distant, et recuperer les valeurs voulu...


C'est ce que je lui ai dis, mais il ne dois pas être très familier de php.
CURL permet GET et POST, donc bon, c'est aussi évolué qu'un navigateur (en soi ..)


---------------
Debian Addict - Vista Victim .. - Etudiant Ingénieur [Le Pas-Blog - Relations Ecrites]
n°1706384
exeed
Posté le 21-03-2008 à 23:21:50  profilanswer
 

En fait j'ai juste omis de transmettre un cookie. (il en fallait deux, je n'en ai transmis qu'un)
 
Voila problème réglé, maintenant les regexp.... demain :)

n°1707154
exeed
Posté le 25-03-2008 à 09:29:34  profilanswer
 

Bon finalement je suis passe en Perl , beaucoup plus simple pour faire ce genre de manipulations.
 
Je disais donc: les regexp!
Je récupère donc un contenu sur une page.
 
De la forme sqrt(nombre1)*pow(nombre2,nombre3)+nombre4
 
je veux récupérer les nombres, j'ai donc écrit cette chose:
 
if $res->content=~ /racine\((\d+\))\*(\d+)(?\d+)+(\d+)/
{
 
  quelque chose
 }  
 ce qui évidemment ne fonctionne pas.
 
Lorsqu'une parenthèse fait juste partie de la "forme" de la phrase, je l'échappe c'est bien ça?

n°1707232
exeed
Posté le 25-03-2008 à 12:19:53  profilanswer
 

Ok :)  

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Recuperer un mot n d'une page

 

Sujets relatifs
récupérer le code HTMl à partir d'une page web[access] récupérer des informtions tirées d'une page internet
[IE] Récupérer le code source d'une page dynamique en liverécuperer infos d'une page web (parsing)
récupérer valeur dans page htmlrécupérer une variable d'une autre page php
recuperer une partie d'une page webpressé : récuperer une statistique sur une page html
Récupérer le résumé d'une page htmlRécupérer les données dans une autre page [Résolu]
Plus de sujets relatifs à : Recuperer un mot n d'une page


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR