Bonjour,

J'ai quelques soucis à la création d'un flux xml de produits sur plusieurs sites internet.

Le premier, le moins chiant, je ne parvient pas à afficher le flux directement via PHP. La commande reste muette.

J'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$xml = simplexml_load_string($xml);
puis je fais un echo $xml; mais la page reste blanche.

J'ai alors utilisé une autre méthode,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
$tempLocalPath = "data.xml";
file_put_contents($tempLocalPath, $xml);
$xml = simplexml_load_file($tempLocalPath);
echo $xml;
Le fichier data.xml est bien généré et fournis des infos souhaitées mais la page php reste blanche. Je contourne donc le problème en fournissant le lien vers data.xml en lieu et place de la page php qui génère le fichier, c'est pas bien chiant, mais ça m'oblige à mettre un cronjob pour générer le flux en tant que de besoin à chaque fois.

Ce problème n'en est qu'un pour les sites où je n'ai pas énormément de référence à traiter.

Maintenant le problèmes pour les gros sites.

Pour les gros sites, avec des centaines de milliers de références je ne peux pas générer le flux en une fois. J'en passerai donc obligatoirement par la génération du fichier data.xml.

Le problème c'est que je ne vois pas trop comment gérer la création du fichier. En prenant les problèmes un par un.


- Comment savoir à quel moment écraser le fichier pour tout reprendre à 0 afin de mettre à jour le flux
- Comment limiter la durée d'exécution du script. Je ne peux pas utiliser la fonction limit sur une requête sql parce que mes produits sont éclatés en 2 tables. Une pour les produits et une pour les déclinaisons. Dans mon flux une déclinaison est générée comme un produit. Pour éviter les pb de timeout je pensais générer environ 10000 produits par lancement du script. Problème, certains produits ont 3 ou 4000 déclinaisons. Je ne peux donc limiter la requête sql de manière simple. De plus, comment savoir si j'ai fini d'introduire tous les produits dans le fichier xml puisque le catalogue bouge. J'avais donc pensé utiliser une variable dans le script qui compte le nombre de produits ajoutés dans le flux et break automatiquement arrivé à 10000. Mais je reste avec le soucis de savoir où reprendre ensuite. Pour la fin du catalogue j'utiliserai une condition. Si on a breaké avant on ne boucle pas le flux pour ajout de la suite, si on a pas breaké c'est qu'on est à la fin du catalogue donc on ferme le flux.

Merci d'avance pour votre aide.