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 :

expressions régulières [Débutant(e)]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Par défaut expressions régulières
    bonjour,
    J'aimerai me constituer une liste de lien qui se trouvent sur une page afin de l'exploiter par la suite.
    donc cela consiste à chercher une chaine de caractère spécifique contenant le lien href et de la stocker.
    Jusqu'à maintenant, je suis arrivé à faire ca :
    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
     
    <?
     
    $page ='';
    $geoLecture = fopen('http://www.tageo.com/index.htm', 'r') or die($php_errormsg);
    $geoEcritureLien = fopen('listeLien_geo.txt', 'w') or die($php_errormsg);
     
     
    while (! feof($geoLecture)) {
    	$page = fread($geoLecture, 1048576);
    	while (ereg("href=\"alpha+\"", $page, $lien)) {
    		fwrite($geoEcritureLien, $page);
    	}
    }
     
     
     
     
    ?>
    est ce que l'expression régulière vous semble correcte ?
    la boucle marcherait vraiment dans ce cas la ? j'aimerai faire en sorte que tant qu'il y a des chaines de caractères qui repondent à l'expression, le traitement continue.
    Pour une utilisation ultérieur, j'aimerai ne pouvoir stocker que le texte du lien. Par exemple pour http://www.monlien.com j'aimerai ne stocker que ce texte et non href="http://www.monlien.com".

    Vous avez une astuce ?


    Merci d'avance pour toute réponse

    Sempire

  2. #2
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Par défaut
    Bonjour,
    Je ne suis pas sure que ton ereg soit vraiment "optimum". Que se passe-t-il avec des adresses qui contiennent ~, %, &, ... et autres caracteres tout a fait envisageable.

    Sinon, une fois que tu as l'adresse, il te suffit eventuellement de faire un:
    $adresse=str_replace( 'href=','',$adresse)
    $adresse=str_replace( '"','',$adresse)

    Mais je pense que tu peux faire plus simple en prenant la chaine entre "
    Ca doit donner un pattern du style /href=".{1,}"/ mais je ne suis pas assez au fait de ces expression pour t'en dire plus.
    Bon courage,
    Sohnic

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Par défaut
    Vas voir la bas :

    http://www.expreg.com/liresource.php?type=URL

    Sinon, je te conseille de chercher un peu plus sur Google la prochaine fois. Les modérateurs risquent de te renvoyer dans les cordes.
    C'est un sujet assez récurrent.

  4. #4
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 97
    Par défaut
    merci pour le lien.
    je m'attendais à ce genre de réaction, mais ma question ne porte pas seulement sur les expressions régulières. eh oui si seulement google avait réponse à tout... ;-)
    pour faire en sorte que tant qu'il y a des chaines de caractères qui repondent à l'expression, le traitement continue, suffit-il de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    while (ereg(...) {
    }
    merci encore pour toute réponse

    sempire

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 214
    Par défaut
    Salut,
    en fait j'utilise la fonction preg_match_all.
    Elle récupère la liste de toutes les occurrences de l'expression régulière que tu lui passes et les stocke dans un tableau.
    Ensuite tu n'as plus qu'à boucler sur ce tableau. Tant que le tableau contient quelque chose à l'indice i, tu fais tes traitements (écriture dans un autre fichier).

Discussions similaires

  1. [RegEx] Expression régulières : Balises <SCRIPT>
    Par Gwipi dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2006, 23h25
  2. Expression réguliére
    Par Mad_Max dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 16/09/2003, 18h17
  3. [expression régulière] mon cerveau fait des noeuds..
    Par nawac dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 27/05/2003, 10h06
  4. Expressions réguliéres
    Par Tooms dans le forum Langage
    Réponses: 4
    Dernier message: 06/12/2002, 18h42
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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