Bonjour,

J'ai déjà un peu de mal à formuler ma question, mais bon ce que je souhaite faire c'est la chose suivante :

Lorsque sur l'intranet de ma société je tape la requête suivante dans la barre d'adresse de mon navigateur :

http://www.masociété.com/cgi-bin/htpq?name=toto

J'ai une page qui s'ouvre avec toutes les infos concernant "toto".

Quelqu'un aurait-il une idée, comment je pourrais faire pour récupérer ces infos (ou une partie d'entre elles) dans un fichier afin de pouvoir les utiliser dans excel par exemple ?

Le besoin est bien sur de pouvoir automatiser tout cela, pour chercher les infos d'une liste de personnes, etc ....

Merci d'avance
Modifié par Merlin (29 May 2007 - 17:30)
Le plus simple est de faire un script PHP qui crée un fichier CSV (comma separated values : valeurs séparées par des virgules -- ou points-virgules).

Au final, tu dois obtenir ceci :
Titre colonne 1;Titre colonne 2;Titre colonne 3
Ligne 1 valeur 1;Ligne 1 valeur 2;Ligne 1 valeur 3
Ligne 2 valeur 1;Ligne 2 valeur 2;Ligne 2 valeur 3
etc.

Le tout sera au format texte brut. Visualisé dans le navigateur, tu auras sans doute tout le contenu sur une seule ligne, à moins de bien avoir précisé un header('Content-type: text/plain'); au début de ton fichier PHP.

Ça devrait être simple à faire en connaissant juste les rudiments du langage (PHP).
Salut,

j'imagine 2 solutions.

1/ mais d'où viennent ces infos ne peut tu pas demander dans ta société sur quel BDD ou fichier ces informations sont accessibles.
la solution la plus simple est que tu accedes directement à la source plutôt que d'analyser une page web.

2/la page web d'info doit avoir une structure plutôt repetitive a chaque personne. donc avec cURL par exemple tu recupere le code de ta page dans une chaine.
ensuite a coup d'expressions régulieres tu analyses le contenu en retire les infos et construit ensuite un fichier dans un format style csv.

ce 2 eme cas me semblant assez galere et sensible a toute variations de presentations des pages Smiley confused mais bon moi je m'y prendrais comme ça.... si j'avais vraiment pas le choix....
A FlorentV :
Je ne vois pas bien comment récupérer l'info de base avec un PHP ? Ou plus exactement comment le script PHP fait pour générer la requête et récupérer la réponse dans une variable (ou un tableau de variables). Si je pouvais faire cela je devrais pouvoir m'en sortir.

A CPascal :
1) en fait ces infos sont totalement accessibles une par une. Mon problème est de pouvoir les récupérer pour une liste de personnes. Il existe apparemment un outil qui fait cela mais il tourne sous UNIX uniquement.
2) La structure est parfaitement connue effectivement. Je n'ai jamais entendu parler de cURL, je vais regarder sur le net, j'espère qu'il y aura des exemples, sinon ça va être coton....

addendum : Je viens de récupérer ma première page avec cURL sous window. La page http://nepomiachty.developpez.com/extraction_donnees/index4.php[/url] est super-claire. Reste plus qu'à automatiser tout cela. Je reste toutefois preneur d'une solution PHP.
Modifié par Merlin (29 May 2007 - 14:43)
bon je t'avouerais avoir donné curl plus par lecture de conseil que par pratique mais un code comme ça ( apres avoir activer dans wamp5 curl ( cequi est trés facile))

<?php
$ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, "http://unsiteparexample.com/");
 curl_setopt($ch, CURLOPT_HEADER, 0);

 ob_start();
 
 curl_exec($ch);
 curl_close($ch);
 
 $str = ob_get_contents();
 ob_end_clean();

 $fichier = "toto.txt"; 
 $in = fopen($fichier,"w"); 
 
 fputs($in,$str);

 ?>


te permets de recuperer le code dans $str puis dans un fichier pour le traiter avec perl.

mais rien ne t'empeche d'utiliser aussi directement en php les fonctions preg_match() etc... que j'aime pas perso car elle utilise la syntaxe perl des expressions régulieres et que je les maîtrise pas
mais si toi tu perl a l'aise elle devrait pas te géner.

pascal
Merci beaucoup.
J'ai réussi à automatiser la récup de mes infos.

Avant de lire ta proposition, j'avais fait un truc beaucoup plus bourin mais qui marche aussi. Je le donne à tout hazard avant de passer mon post à résolu.

<?php
$file = fopen("upi.txt", "r+"); // la liste des codes à scanner
$i = 0;
while (!feof($file)) {
  $upi[$i]=fgets($file);
  $i++;
}
fclose($file);

$file = fopen("result.txt", "r+");// fichier résultat
fputs($file, "Name;Pays;\n");// entête des colonnes
for ($j = 0; $j <= $i; $j++) {
$url = "http://www.masociete.com/cgi-bin/htpq?upi=$upi[$i]";
$texte = `curl $url`;(voir note ci-dessous)

$tri = $texte;
$spos = strpos($tri, '<b>Name:</b>') + 12;
$epos = strpos($tri, '<b>Job:</b>', $spos);
fputs($file, substr($tri, $spos, $epos-$spos));//le nom 
fputs($file, ";");// un séparateur pour excel

$tri = $texte;
$spos = strpos($tri, '<b>Country<b>') + 13;
$epos = strpos($tri, '<b>Phone</b>', $spos);
fputs($file, substr($tri, $spos, $epos-$spos));//le pays
fputs($file, "\n");//nouvelle ligne
}
fclose($file);
echo "fin d'execution";
?>


Note1 : l'appel de curl se fait via un shell (guillemets inversés) $texte = `curl $url`;
Note2 : il faut que le répertoire on se trouve la commande curl soit dans le PATH, sinon, il faudra préciser son chemin d'accès.

etc, etc .... évidemment la structure de la page étant infiniment plus complexe que l'exemple ci-dessous, je vais tout mettre dans un fichier et post-traité avec un script perl.

En tout cas merci infiniment, tu m'as permis de résoudre un problème qui me pourrissait le vie depuis plusieurs semaines

Merlin
Modifié par Merlin (29 May 2007 - 17:49)