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 :

Extraire des informations


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Par défaut Extraire des informations
    Bonjour, j'extraie des informations d'une page. Par exemple depuis cette page:

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <ul class="tags">
    	<li><div class="tag"><a href="http://www.url1.com" title="url1">title 1</a></div></li>
    	<li><div class="tag"><a href="http://www.url2.com" title="url2">title 2</a></div></li>
    </ul>

    Je souhaiterai obtenir title 1,title 2.

    J'ai ainsi codé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $m=array();
    preg_match('/<ul class="tags">(.*?)<\/ul>/ims',$buff,$m);
    $info['tags']=trim(strip_tags($m[1]));
    $cats=explode("\n",$info['tags']);
    $cats=array_map('trim',$cats);
    $info['tags']=implode(',',$cats);
    Mais il y'a un problème au niveau de l'explode \n.

    Lorsque je met: preg_split('/\s+/ à la place de l'explode cela donne title,1,title,2.

    Merci pour votre aide.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    On ne cesse de le répéter : ce n'est pas avec des expressions régulières que l'on parse du HTML (ou du XML). Il existe des fonctions qui le font de façon plus propre (par exemple DOMDocument).
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Par défaut
    J'ai déja payé pour ce script. Je ne vais pas repayer un nouveau script pour qu'il soit parsé d'une facon differente et je sais qu'il doit etre possible de le faire de cette maniere.

    Merci.

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ce serait quand même vachement plus propre avec un parseur convenable.
    Mais bon, allons-y à la main :
    preg_split('/\s+/ c'est "découper à chaque fois qu'il y a au moins un espace" :

    Je pense que toi, tu cherches plutôt à découper chaque fois qu'il y a un retour chariot. Essaye plutôt avec \r.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 34
    Par défaut
    J'ai essayé $cats=preg_split("\r",$info['tags']); et cela me donne aucun résultat et j'ai essayé $cats=explode("\r",$info['tags']); et cela ma donne:

    title 1

    title 2

Discussions similaires

  1. [RegEx] Extraire des informations d'un texte
    Par mmansour79 dans le forum Langage
    Réponses: 2
    Dernier message: 08/12/2006, 11h41
  2. Extraire des informations précises d'un fichier
    Par cameleon33 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 14/10/2006, 13h40
  3. Extraire des informations d'une page web
    Par lr dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 28/03/2006, 12h38
  4. [RegEx] Extraire des informations d'une requête SQL
    Par XtofRoland dans le forum Langage
    Réponses: 13
    Dernier message: 07/03/2006, 15h59
  5. Existe t-il un parseur HTML pou extraire des informations?
    Par danje dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 31/10/2005, 11h55

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