1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
<?php
// Initialisation de variables
$ouv_destination = 1;
$ouv_source = 1;
$ecriture_destination = 1;
$url = "http://www.url-de-mon-flux.xml"; // url du flux
$flux = html_entity_decode($url, ENT_QUOTES, "UTF-8");
if($sourcexml = fopen($flux,'r')) // Si ouverture du flux en lecture seul ok.
{
if($destxml = fopen('flux-xml/test.xml','w+')) // si ouverture destination en ecriture ok.
{
$page = "";
$i=0; // Nb de lignes.
while (!feof($sourcexml)) // on parcourt toutes les lignes
{
$page .= fgets($sourcexml, 10000); // lecture du contenu de la ligne
$i=$i+1; // nb de lignes+1.
if ($i > 100) // Si j'ai lu 100 lignes.
{
if(memory_get_usage() > 1000000) // Si la memoires depasse 1000000 bytes.
{
fwrite($destxml,$page); // J'enregistre ce que j'ai déja lu.
$page = ""; // Je libére de la mémoire.
}
$i=0;// Nb de lignes a zero et c'est repartie.
}
} // Fin du while du parcours du flux.
if(!fwrite($destxml,$page)) $ecriture_destination = 0;
// Fermeture de la source et de la destination.
fclose($destxml);
fclose($sourcexml);
}
else // Si je n'ai pas réussi a ouvrir le fichier de destination.
{
$ouv_destination = 0;
}
}
else // Si je n'ai pas réussi a ouvrir le flux
{
$ouv_source = 0;
}
?> |
Partager