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

PHP & Base de données Discussion :

Explode function + encode


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Autre
    Inscrit en
    Mai 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Autre
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2013
    Messages : 1
    Par défaut Explode function + encode
    Bonjour à tous,
    Je suis en train de créer un fichier php que j'héberge pour l'instant en local via Easyphp et son serveur apache. Ce fichier a pour but le suivi des actualités et publications de sites web. J'y ai inclus des flux rss, qui s'affichent parfaitement après avoir re-travaillé légèrement du code que j'ai trouvé sur la toile.
    Cependant, tous les sites n'offrant pas cette technologie très utile, je dois donc extraire manuellement pour chaque site à suivre les informations qui doivent être ajoutées à ma page php.
    Le code suivant me permet d'obtenir les données entre deux marqueurs :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    $buffer = implode('', file('http://www.url/'));
    $array1 = explode("<balise de début>",$buffer);
    $array2 = explode("<balise de fin->",$array1[1]);
    $contents = $array2[0];
    ?>
    Code inséré dans <body>, à l'emplacement désiré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <font face="font choisie" size="chiffre">
    <?php echo $contents ?>
    </font>
    Cependant, deux difficultés se posent à moi :
    1/ Même en insérant des balises <font> autour de echo identiques à celles au sein de ma page html, la taille de la police diffère
    2/ Les caractères accentués sont mal lus par ma page php, qui est en UTF-8 alors que la page source est en Charset Latin
    Après multiples heures de recherche sur internet, je pense cerner le problème mais je ne connais pas la synthaxe exacte du code à utiliser. Voici ce que j'ai ci-dessous :

    Code contenu dans mon fichier index.php:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $buffer = implode('', file('http://www.lefigaro.fr/economie/'));
    $array1 = explode("<!--sdvF=templates_v6/pages/Colonne_NewsTop.php -->",$buffer);
    $array2 = explode("<!--sdvD=templates_v6/pages/Colonne_NewsBottom-->",$array1[1]);
    $contents = $array2[0];
     
    //exemple pour le site du Figaro
    // ensuite, présence d'autre code php fonctionnel, qui se termine par 
    header('Content-Type: text/html; charset=UTF-8');
    S'en suit ma page classique, côté client
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset="UTF-8" />
    <meta name="exemple" content="contenu exemple">
    </head>
    <body>
    ' Mon code html, fonctionnel, aucun problème sur ce langage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <font face="Geneva, Arial, sans-serif" size="0">
    <?php echo '<a href="mycgi?foo=', urlencode($contents), '">' ?>
    </font>
    </body>
    </html>
    Pour le problème 1/ j'ai l'impression que le code explode comprend tout ce qu'il y a entre les deux marqueurs, et donc la mise en forme du site source. Cela m'empêche donc de modifier l'output.
    Une idée? P.e. qu'il est possible de passer par une autre fonction pour n'extraire que le texte, sans la mise en forme ou bien de supprimer des éléments dont les tags du site source définis tels <font>? Cette deuxième solution apporterait des fonctionnalités très pratiques pour éditer le résultat.
    Ah oui et puis pour le size="0", aussi étrange que cela puisse paraitre cela permet quand même de réduire légèrement la taille du résultat...

    Pour le problème 2/, il s'agit d'un problème de encode, mais les seules syntaxes que j'ai trouvées sur le net (j'en suis à un niveau utilisateur seulement), concernent le get_file_content et non le implode / explode. J'ai testé sans succès la fonction convert et des solutions de contournement du style str_replace, mais je n'arrive pas non plus à les appliquer.

    Toute aide qui me permettrait d'avancer sur mon projet serait la bienvenue !

    Bonne journée (ou bon long WE pour ceux qui en ont la chance) ! +

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Par défaut
    Bonjour, as tu essayé
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $contents =  utf8_encode($array2[0]);

Discussions similaires

  1. [MySQL-5.5] Mysql function explode()
    Par RookFrank dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 26/03/2015, 10h38
  2. A propos des 'File management Functions' de Windows
    Par znaidi dans le forum Windows
    Réponses: 3
    Dernier message: 01/04/2003, 16h01
  3. [postgreSQL] équivalent de la function 'instr'
    Par Dra_Gun dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/01/2003, 16h09
  4. [Dev c++ 4] implicite declaration of function "int kbhi
    Par Torpedox dans le forum Dev-C++
    Réponses: 5
    Dernier message: 01/01/2003, 13h37
  5. equivalent à explode?
    Par djridou dans le forum Langage
    Réponses: 3
    Dernier message: 28/08/2002, 11h01

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