Url en xml et récupération des données en php
Résolu/Fermé
stribouille
-
6 nov. 2013 à 17:55
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 7 nov. 2013 à 20:01
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 - 7 nov. 2013 à 20:01
A voir également:
- Url en xml et récupération des données en php
- Lien url - Guide
- Xml viewer - Télécharger - Édition & Programmation
- Easy php - Télécharger - Divers Web & Internet
- Recuperation de données - Guide
- Atlas pro url serveur invalide - Forum TV & Vidéo
3 réponses
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
6 nov. 2013 à 19:15
6 nov. 2013 à 19:15
Salut,
A tester :
A tester :
function Affiche($url){
if ($ouverture=fopen($url, "rb")) {
if ($lecture=stream_get_contents($ouverture)){
$motif='#<E4060>(.*?)</E4060>#is';
preg_match_all($motif,$lecture,$sortie,PREG_PATTERN_ORDER);
//tableau
echo '<pre>';
print_r($sortie);
echo '</pre>';
/*Chaque tableau semble contenir la même chose et dispose de 8 sous-tableaux*/
/*On affiche donc que le résultat du 1er tableau*/
for($i=0; $i<=8;$i++){
/*Le sous-tableau 3 étant vide, on l'exclue*/
if($sortie[0][$i] != $sortie[0][3]){
echo $sortie[0][$i]."<hr/>";
}
}
return $lecture;
}
else{
return 'La page n\'a pas pu être scannée ';
}
}
else{
return 'La page n\'a pas pu être scannée ';
}
fclose($ouverture);
}
$Source = Affiche('http://www.mycobank.org/Services/Generic/SearchService.svc/rest/xml?layout=14682616000000161&filter=Name%20CONTAINS%20%22Candida%20albicans%22');
Re,
C'est bon cela fonctionne; j'ai modifié ton code php (un très grand merci pour le patern que je n'aurais jamais trouvé seul).
Seul hic, dans le code source de la page php généré, tous les caractères sont en hexadécimal donc il faut les identifier et les enlever pour rendre l'affichage propre.
Voici le code complet:
C'est bon cela fonctionne; j'ai modifié ton code php (un très grand merci pour le patern que je n'aurais jamais trouvé seul).
Seul hic, dans le code source de la page php généré, tous les caractères sont en hexadécimal donc il faut les identifier et les enlever pour rendre l'affichage propre.
Voici le code complet:
<?php
function Affiche($url){
if ($ouverture=fopen($url, "rb")) {
if ($lecture=stream_get_contents($ouverture)){
$motif='#<E4060>(.*?)</E4060>#is';
preg_match_all($motif,$lecture,$sortie,PREG_PATTERN_ORDER);
// on remplace le caractère bizarre ? par un retour à la ligne.
$chaine=str_replace('≡','<br />',$sortie[0][0]);
// on remplace le caractère ; qui apparait en début de chaine (heureusement il n'y en a pas d'autre ouf) par rien.
$chaine=str_replace(';','',$chaine);
// pour enlever les <br /> qui sont en #$%@
$chaine=str_replace('<br />','',$chaine);
// on remplace le signe = par un retour à la ligne
$chaine=str_replace('=','<br />',$chaine);
echo $chaine;
//echo $sortie[0][0];
return $lecture;
}
else{
return 'La page n\'a pas pu être scannée ';
}
}
else{
return 'La page n\'a pas pu être scannée ';
}
fclose($ouverture);
}
$Source = Affiche('http://www.mycobank.org/Services/Generic/SearchService.svc/rest/xml?layout=14682616000000161&filter=Name%20CONTAINS%20%22Candida%20albicans%22');
?>
tryan44
Messages postés
1288
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
26 octobre 2014
220
7 nov. 2013 à 20:01
7 nov. 2013 à 20:01
Content que ça fonctionne :). Bonne continuation.
Note : avec un header en utf-8, je n'avais aucun soucis de caractères.
Note : avec un header en utf-8, je n'avais aucun soucis de caractères.
6 nov. 2013 à 21:05
Merci pour ta réponse je vais tester demain cette solution que je n'aurais pas pu inventer.
Je ferais bien entendu un retour.
Bonne soirée.
6 nov. 2013 à 21:07
7 nov. 2013 à 07:56
Modifié par stribouille le 7/11/2013 à 10:26
La page récupérée est longueeeeee :
http://genome.jouy.inra.fr/cirm/bdd/syno.php
et je voudrais pouvoir récupérer les premières lignes ici car toutes autres sont identiques...
Array
(
[0] => Array
(
[0] => blablabla
}
}