Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/05/2011, 19h39   #1
Invité de passage
 
pat ludo
Inscription : novembre 2009
Messages : 29
Détails du profil
Informations personnelles :
Nom : pat ludo

Informations forums :
Inscription : novembre 2009
Messages : 29
Points : 0
Points : 0
Par défaut temps de recherche

Bonsoir,

Je m'interroge sur les temps de recherche sous simplexml, j'ai un fichier externe de 9 mo avec des temps de recherche de 5 sec, c'est très limite car ce n'est pas un fichier de 50 mo, ce temps descend avec la taille du fichier, j'envisage de mettre sous cache, y'a t'il moyen toutefois d'améliorer encore cela j'ai vu que certains associent Curl à Simplexml ? y'a t'il vraiment un intérêt ?

merci d'un avis

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
$url = « http://url_de_votre_flux »;
$ch = curl_init();
$timeout = 5; // mettre zero pour aucun timeout
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$result = curl_exec($ch);
curl_close($ch);
$rss = simplexml_load_string($result);
?>
Code :
1
2
3
4
5
6
7
8
9
10
11
 
// mon code
$document = simplexml_load_file('http://www.siteexternet.com/);
define('NB_PAR_PAGE', 10); 
 
if (isset($_GET['ob'])) { $objet=$_GET['ob']; } else {$objet = "";} 	// On récupère la ville
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;  	// Recuperer le n° de page ou on est pagination 
 
$count = count($document->xpath(utf8_encode("//products/product/fields[REGION=\"$city\"]")));
$debut_pos = ($page - 1) * NB_PAR_PAGE + 1;  $fin_pos = $page * NB_PAR_PAGE + 1;	$derniere_page = ceil($count / NB_PAR_PAGE);
$produits = $document->xpath(utf8_encode("//products/product[fields/REGION=\"$city\"][position()>=$debut_pos and position()<$fin_pos]"));
manuso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h48   #2
Modérateur
 
Avatar de Nesmontou
 
Homme Benjamin PREVOT
Architecte de système d'information
Inscription : septembre 2004
Messages : 1 568
Détails du profil
Informations personnelles :
Nom : Homme Benjamin PREVOT
Âge : 30
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : Finance

Informations forums :
Inscription : septembre 2004
Messages : 1 568
Points : 2 493
Points : 2 493
Bonjour,

Tu exécutes 2 fois la même expression XPath : $document->xpath(...)
  • Comptage
  • Liste des produits

Tu peux peut-être faire quelque chose comme ceci (non testé)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
define('NB_PAR_PAGE', 10);
 
$document = simplexml_load_file('http://www.siteexternet.com/');
 
if (isset($_GET['ob'])) {
	$objet=$_GET['ob'];
} else {
	$objet = '';
}
 
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
 
$liste = $document->xpath(utf8_encode("//products/product/fields[REGION=\"$city\"]"))
$count = count($produits);
$debut_pos = ($page - 1) * NB_PAR_PAGE;
$derniere_page = ceil($count / NB_PAR_PAGE);
$produits = array_slice($liste, $debut_pos, NB_PAR_PAGE);
?>
__________________
Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

F.A.Q. : Java, PHP, (X)HTML / CSS

N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème
Nesmontou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 14h51   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
dans ton cas il faut faire du SAX, rien ne t’empêches de le coupler a SimpleXML après, tu vas largement gagner en rapidité et en mémoire
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h29.


 
 
 
 
Partenaires

Hébergement Web