> 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
222,15 €Mini PC Beelink U59 (Celeron N5095, 8 Go RAM, SSD 256Go) à 222,15 €
279 € -20%

Amazon fait une promotion sur le mini PC Beelink U59 qui passe à 222,15 € grâce à un coupon à activer sur la page du produit. On le trouve habituellement à 279 €. Ce mini PC intègre un processeur Intel Celeron N5095 (4 coeurs), 8 Go de RAM DDR4 et un SSD NVMe de 256 Go au format M.2 (un port 2.5 pouces SATA est également présent pour ajouter un SSD ou un disque dur). Il possède un chip graphique Intel UHD. Il intègre le WiFi 5, un port Ethernet Gigabit, 4 ports USB 3.0, un port USB-C et deux connecteurs HDMI. Le tout tourne sous Windows 11 Pro.

Une bonne affaire pour un PC efficace dans toutes les tâches bureautiques et multimédia, silencieux et qui ne prendra pas de place ! 


Voir l'offre
36,99 €Clé USB Sandisk Luxe 256 Go à double connectique USB 3.1 Type A et C à 36,99 €
47 € -21%

Cdiscount fait une promotion sur la clé USB Sandisk Luxe 256 Go à double connectique USB 3.1 Type A et C qui passe à 36,99 €. Cette clé USB  dispose d'un connecteur USB Type C et d'un connecteur classique de type A. Grâce à elle, transférez en toute simplicité et rapidement (jusqu'à 150 Mo/s) vos fichiers entre vos smartphones, tablettes et ordinateurs. On la trouve ailleurs à plus de 47 €.


Voir l'offre
179,99 €Ecran 27 pouces HP X27 (FHD, IPS, 165 Hz, 1 ms, FreeSync) à 179,99 €
224 € -20%

Cdiscount fait une promotion sur l'écran 27 pouces HP X27 qui passe à 179,99 € au lieu de 224 €. Cet écran dispose d'une dalle IPS FHD (1920x1080) à 165 Hz, est compatible FreeSync et offre un temps de réponse de 1ms. Il possède des entrées DP et HDMI. Il possède des fonctions d'anti scintillement et anti lumière bleue. Il est réglable en hauteur et en inclinaison. 


Voir l'offre
19,99 €Ecran de contrôle 3.5 pouces IPS USB-C (température, CPU, RAM, réseau, date/heure) à 19,99 €
28 € -29%

Geekbuying fait une promotion sur l'écran de contrôle 3.5 pouces IPS USB-C qui passe à 19,99 € avec le code NNNFRBEIPS au lieu de 28 €. Cet écran 3.5 pouces (320x480 pixels) à brancher sur un port USB C de votre ordinateur vous permettra de contrôler l'état de votre machine : température, occupation mémoire, processeur, activité réseau, date, heure, etc. Plusieurs écrans personnalisables disponibles.


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