> Tous les forums > Forum des Webmasters
 écrire dans un fichierSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
padymen
  Posté le 29/07/2014 @ 16:51 
Aller en bas de la page 
Astucien

Bonjour,

Je cherche en php à lister un répertoire puis incrémenter un fichier xml qui se compose comme suit :

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<AlbumArt>
<Folder Date="1406625154000" />
<Image File="1.jpg=.folder/1.browse.jpg" Type="0" />
<Image File="2.jpg=.folder/2.browse.jpg" Type="0" />


</AlbumArt>

jusque la pas de soucis mais la ou je ne sais pas comment faire c'est faire en sorte que le résultat soit écris non à la fin du xml mais juste avant la balise de fin "</AlbumArt>"

merci

Publicité
padymen
 Posté le 29/07/2014 à 18:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

bon, j'ai trouvé une solution : ouvrir le fichier, chercher la dernière ligne (la balise de fin "</AlbumArt>"), je l’efface et je la réécris à la fin.

soit :

$nomFichier = 'folder.xml';
$Ligne_A_Effacer ='</AlbumArt>';
$fileOpen = file($nomFichier);
$numFileLine = count($fileOpen);
for($i = 0; $i< $numFileLine; ++$i) {
if (trim($fileOpen[$i]) == $Ligne_A_Effacer) {
unset($fileOpen[$i]);
}
}
$fileRecord = implode('', $fileOpen);
// en php4
$fh = fopen($nomFichier, 'w') or die("Erreur!!");
fwrite($fh, "$fileRecord");
fclose($fh);

suivi de :

$fp = fopen("folder.xml","a");
$mydir = 'films';
$fin='</AlbumArt>';
if ($dir = opendir($mydir)) {
while (($file = readdir($dir)) !== false) {
$path= explode (".", $file);
$un=$path[0];
$deux=$path[1];

if ($file != ".." && $file != "." && $deux != "browse" && $deux != "poster" ) {
echo '<option value="' . $un . '"';
echo '> ' . $un . ' </option>';
$xml='<Image File="'.$un.'.'.$deux.'=.folder/'.$un.'.browse.jpg" Type="0" />';
fwrite($fp, "$xml\n");
}
}
}
fwrite($fp, "$fin\n");

fclose($fp);

surement pas très pro comme méthode mais ça semble fonctionner ...

y.bli
 Posté le 29/07/2014 à 18:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Maître astucien

Bonjour,

Plus simple, j'incrémente un fichier texte, puis dans ton fichier xml, à l'endroit où tu veux, j'ajoute <?php include 'fichier.txt' ?>

@+

padymen
 Posté le 29/07/2014 à 19:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bonsoir y.bli

je ne savais même pas que je pouvais appeler du php dans xml, merci de l'astuce

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
23,99 €Carte mémoire MicroSDXC UHS-I U3 SanDisk Extreme Pro 128 Go (170 Mo/s) à 23,99 €
34,99 € -31%

Amazon fait une vente flash sur la carte mémoire MicroSDXC UHS-I U3 SanDisk Extreme Pro d'une capacité de 128 Go qui passe à 23,99 € alors qu'on trouve la carte ailleurs à partir de 34,99 €.

Cette carte mémoire offre des vitesses jusqu'à 170 Mo/s en lecture et 90 Mo/s en écriture et intègre des mécanismes afin de gérer l'usure des cellules de la carte et augmenter ainsi sa durée de vie. Une valeur sûre pour les plus exigeants en FullHD et 4K.


Voir l'offre
109,99 €Sega Mega Drive Mini 2 avec 60 jeux à 109,99 €

Amazon propose en précommande la nouvelle Sega Mega Drive Mini 2 qui sortira le 27 octobre prochain à 109,99 €. Cette nouvelle réplique miniature de la célèbre console de SEGA est plus puissante que la précédente, est accompagnée d'une manette à 6 boutons, comporte désormais des titres Mega CD. Elle peut être branchée sur une TV moderne via HDMI et intègre 60 jeux mythiques.


Voir l'offre
48,89 €Lego Star Wars Diorama de la poursuite dans les tranchées de l’Étoile de la Mort à 48,89 € livré
79,99 € -39%

Amazon Allemagne fait une promotion sur le set Lego Star Wars Diorama de l’Entraînement Jedi sur Dagobah 75329 qui passe à 43,36 € (avec la TVA ajustée) grâce à un coupon à activer sur la page du produit. Comptez 5,53 € pour la livraison en France soit un total de 48,89 € livré. On le trouve ailleurs à partir de 59,99 €.


Voir l'offre
-7 €-7 € dès 20 € pour une première livraison en point de retrait Amazon (selon éligibilité)

Amazon propose actuellement 7 euros de remise dès 20 euros d'achats avec le code RETRAIT7 pour une première livraison en point de retrait Amazon. Vous pouvez vérifier votre éligibilité à cette offre en vous rendant sur cette page. Vous trouverez la liste des points de retrait sur cette page.


Voir l'offre

Sujets relatifs
Ecrire dans un fichier XML
inserer un fichier audio dans une page web
php écrire un fichier js
Sauter une ligne dans un fichier texte.
afficher un fichier xls dans page WEB
Ouverture fichier pdf dans frame sous firefox
"include()" dans un fichier .tpl ?
[HTML]Ecrire sur plusieurs ligne dans un tableau
un fichier pdf dans une page web
Importer un fichier excel dans une bdd MySQL
Plus de sujets relatifs à écrire dans un fichier
 > Tous les forums > Forum Forum des Webmasters