IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

comment convertir en php un flux rss en csv ?


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut comment convertir en php un flux rss en csv ?
    Bonjour,

    J'ai un fichier php pour créer un flux rss, je souhaite créer à partir de ce fichier un autre fichier mais csv ou tout au moins transformer mon actuel fichier rss en csv automatiquement.

    Je n'ai pas trouver grand chose sur la toile à par ces 2 liens :

    http://stackoverflow.com/questions/8...o-csv-with-php

    https://github.com/bcantoni/rss-to-csv (implique une action donc pas automatique)

    Mon flux est sous cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    56
    57
    58
    <?php
    require_once('../includes/func.php');
     
    if ...{
        ...
    }
    else{
     
    header("Content-type: text/xml; charset=utf-8");
    ?>
    <rss version="2.0"  xmlns:g="http://base.google.com/ns/1.0">
    <channel>
    <title>.....</title>
    <description>.....</description>
    <link>....</link>
    <pubDate>...</pubDate>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="...." type="application/rss+xml" />
    <?php
     
        if ($resultRSS){
            foreach ( $resultRSS as $row ){
    .........
     
                ?>
    .....
                <item>
                    <title><![CDATA[.....]]></title>
                    <link>....</link>
                    <description><![CDATA[.... ]]></description>
                    <g:google_product_category>....</g:google_product_category>
                    <g:condition>...</g:condition>
                    <g:shipping>
                <g:country>....</g:country>
                <g:service>......</g:service>
                <g:price>......</g:price>
              </g:shipping>
              <g:brand>.....</g:brand>
              <g:mpn>.....</g:mpn>
                    <g:id>.....</g:id>
                    <g:availability>...</g:availability>
                    <g:price>....</g:price>
                    <g:phone>....</g:phone>
              <g:product_type>.....</g:product_type>
                </item>
    <?php }?>     
                <?php
            }
        }
    $ocdb->closeDB();
    ?>
     </channel>
    </rss>
     
    <?php
     
    }//if else
     
    ?>
    Toute aide même petite est la bienvenue..

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne comprends pas ta difficulté.
    Tu construis actuellement un flux RSS à partir de données que tu parcours.
    Construis ton CSV de la même façon.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $csv .= $country . ';' . $price . ';' . .....

  3. #3
    Inactif
    Homme Profil pro
    Sans emploi
    Inscrit en
    Septembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : Septembre 2014
    Messages : 35
    Points : 52
    Points
    52
    Par défaut
    TOus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    header('content-type: application/xml; charset=utf-8');
    <rss>
     
    ....
    </rss>
     
     
    ?>

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Merci de vos retours je tente ça ce soir..

    Merci encore..

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonsoir,

    Comme je ne suis pas sur d'avoir tout saisi, j'ai fait ce code, mais je ne trouve pas ça très propre en plus du soucis d'utf8 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    <?php
    require_once('../includes/func.php');
     
    if ...{
        ...
    }
    else{
     header('content-type: text/csv; charset=utf-8');
    ?>
    Id ;libelle ;description ;categorie ;sous_categorie ;prix ;date_maj ;photos
    <?php
     
        if ($resultRSS){
            foreach ( $resultRSS as $row ){
    .........
     
                ?>
    .....
    row_de_Id ;row_de_libelle ;row_de_description ;row_de_categorie ;row_de_sous_categorie ;row_de_prix ;row_de_date_maj ;row_de_photos
    <?php }?>     
                <?php
            }
        }
    $ocdb->closeDB();
    ?>
     
     
    <?php
     
    }//if else
     
    ?>
    Y a t-il un code plus propre à me conseiller, sachant que je ne suis pas une lumière en code et ça doit ce voir..

    Merci d'avance..

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Qu'est ce qui ne te vas pas ?

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    mon cerveau, euh blague à par..

    j'ai un soucis d'utf-8, le résultat Excel et internet ne reprend pas les bon caractères, sur PSPAD ça marche bien !

    est-ce normal ?

    Re-bonjour,

    Je pense que c'est en lien avec le charset de ma page de navigation..

    Merci

    Re-reBonjour,

    c'est quoi le mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header("Content-type: application/vnd.ms-excel; charset=utf-8");
    header("Content-disposition: attachment; filename=fichier-test.csv; charset=utf-8");
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Content-type: text/csv; charset=utf-8");
    Merci d'avance.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est un fichier CSV que tu produis, pas un fichier Excel.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    oui un csv, mais pour le lire j'utilise Excel, qui me montre des soucis de caractères.

    donc je reste sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("Content-type: text/csv; charset=utf-8");
    mais mon Excel me parle de AINSI avec des soucis de caractères, alors que PSPAD ras tout marche.

    je n'en tiens pas compte ?

    Merci

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Excel ouvre par défaut les CSV en ANSI.
    Donc soit tu produits un fichier encodés en ANSI, soit il faut que tu spécifies l'encodage UTF8 quand tu ouvres le fichier.

  11. #11
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Merci dans ce cas autant mettre directement en ANSI en remplaçant cette ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    header("Content-type: text/csv; charset=windows-1252");
    mais ça donne la même chose, donc finalement je laisse en utf-8.

    Merci à tous et à toute, ma demande est résolue.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Dans la continuité de cette création, j'ai un caractère € que je n'arrive pas à enlever sur le prix, j'ai cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $postPrice=$row['price'];
    j'ai remplacé par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $postPrice= strtr("€","",$postPrice);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $postPrice= strtr("&euro;","",$postPrice);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $postPrice= str_replace("&euro;","",$postPrice);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $postPrice= str_replace("€","",$postPrice);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $postPrice= preg_replace("€","",$postPrice);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $postPrice= preg_replace("&euro;","",$postPrice);
    Je n'arrive pas à l'enlever le € reste.

    Merci d'avance si vous savez comment enlever ce signe..

  13. #13
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu utilises UTF8, il faut utiliser les fonctions mb_
    http://php.net/manual/fr/function.mb-strstr.php

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Merci ce votre retour, non finalement le csv souhaite être reçu en ISO-8859-1.

    Je suis aller sur le lien que vous m'avez donnée, mais comme je suis une buse je n'ai rien saisi, alors j'ai cherché et trouver un site avec des exemple, que j'ai tenté :

    http://micmap.org/php-by-example/fr/function/mb_strstr

    Mais au lieu de m'enlever le caractère "€" il m'enlève le prix.

    Je continue à chercher, merci quand même..

  15. #15
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Une idée ou deux svp ??

    Cordialement.

  16. #16
    Futur Membre du Club
    Homme Profil pro
    Webcodebricole
    Inscrit en
    Mars 2014
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webcodebricole

    Informations forums :
    Inscription : Mars 2014
    Messages : 38
    Points : 8
    Points
    8
    Par défaut
    Bonjour,

    Une idée svp..

    Cordialement.

Discussions similaires

  1. [XL-2007] Comment convertir un export pdf en excel ou csv ?
    Par Debutant10 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 16/07/2012, 20h37
  2. commenter un element d'un flux rss?
    Par nouraty dans le forum Débuter
    Réponses: 2
    Dernier message: 30/08/2010, 10h51
  3. Convertir date d'un flux RSS
    Par matmat0 dans le forum Langage
    Réponses: 0
    Dernier message: 21/04/2008, 15h40
  4. [PHP-JS] Flux RSS dynamique
    Par rifly01 dans le forum Langage
    Réponses: 1
    Dernier message: 31/05/2007, 19h40
  5. [PHP-JS] flux RSS sur SON site
    Par Ice-tea dans le forum Langage
    Réponses: 2
    Dernier message: 27/09/2006, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo