fseek, placer le cursor ou je veux...

WRInaute impliqué
Bonjour à tous

Je suis en train de potasser un script pour mettre a jour le fuchier sitemap.xml en suite à l'ajout de nouveau contenu via un console admin.
Je suis en train de me battre avec fseek pour placer le curseur ou je veux.

Je voudrai qu'il vienne se placer juste avant la fermeture du fichier (</urlset>).

Merci à vous.
 
WRInaute accro
+1 avec un parseur xml tu te prendrais certainement moins la tête (et ça serait davantage optimisé au niveau du traitement).
 
WRInaute passionné
Sinon pour ce qui est de fseek(), il prend en paramètre un nombre d'octets. Tu connais le nombre de caractères à ignorer à la fin du fichier (strlen(</urlset>)), et tu peux facilement obtenir la taille du fichier(filesize( tonfichier )). Il ne te reste plus qu'à faire une soustraction...

Après je ne connais pas ton traitement, mais entre refaire toute une arborescence XML de plusieurs centaines/milliers de noeuds et simplement en ajouter quelques dizaines en fin de fichier, la seconde peut être bénéfique.
 
WRInaute passionné
En XML tu peux ajouter des noeuds simplements justement. Et ça sans risque de format de fichier (genre un \n, un espace, ...).
 
WRInaute passionné
Pour ça il faut au moins charger le contenu actuel en entier... donc coté perfs, c'est pas forcément l'idéal.
Mais je suis bien d'accord que pour ce qui est de la fiabilité du processus, il est plus prudent de travailler sur l'arbre lui même.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut