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 :

Utilisation de preg_match_all pour un fichier externe [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut [Autre question] Utilisation de preg_match_all pour un fichier externe
    B'jour!

    Je suis à la recherche de l'utilisation de preg_match_all pour vérifier qu'une chaine de caractères existe bel et bien mais sur une page externe de celle utilisée pour le script.

    Je suis parti du code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $file = "46820 sont des nombres pairs";
    preg_match_all("#(\d)#",$file,$matches);
    $nombre_des_resultats=count($matches[0]);
    foreach ($matches[0] as $match)
    {
    echo $match.'<br />';
    }
    ?>
    et j'ai voulu faire la même chose, en mettant la phrase "46820 sont des nombres pairs" dans un fichier HTML de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $file = page.html;
    preg_match_all("#(\d)#",$file,$matches);
    $nombre_des_resultats=count($matches[0]);
     
    for($x=0;$x<$nombre_des_resultats;$x++)
    {
    echo $matches[0][$x].'<br />';
    }
    ?>
    Mais celà ne me renvoie rien du tout...


    Pouvez-vous m'aider?

    Merci à tous

    David

  2. #2
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    C'est tout a fait normal.
    Il faut ouvrir ton fichier avant et charger son contenu.

    Donc readfile ou file_get_contents obligatoire ^^ (attention aux gros fichiers et a la memoire vive)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    super, merci

    Voici donc un code qui fonctionne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $file = file_get_contents('http://www.developpez.net/forums/showthread.php?t=266872&highlight=preg_match_all%28%29');
    preg_match_all("#(\d)#",$file,$matches);
    $nombre_des_resultats=count($matches[0]);
     
    for($x=0;$x<$nombre_des_resultats;$x++)
    {
    echo $matches[0][$x].'<br />';
    }
    ?>
    Ce code ressort toutes les valeurs numériques présentes sur la page passée en paramètres

    Merci, ça me fait beaucoup avancer

    Bonne nuit!

    David

  4. #4
    Membre confirmé

    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2006
    Messages : 317
    Points : 597
    Points
    597
    Par défaut
    Pour le parcours de tableau (a part les tres gros), la boucle foreach est plus performante, plus lisible et plus facile a utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    $file = file_get_contents('http://www.developpez.net/forums/showthread.php?t=266872&highlight=preg_match_all%28%29');
    preg_match_all("#(\d)#",$file,$matches);
     
    foreach($matches[0] as $match){
    echo $match.'<br />';
    }
     
     
    ?>
    A abuser et reabuser ^^

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Merci pour l'info. En effet, c'est même plus simple à écire!

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Bonjour encore une fois!

    Je me pose une grosse question...
    Je me sers de preg_match_all pour vérifier la présence d'une adresse web sur une page.
    Si je l'écris en dur, il n'y a pas de problèmes.

    Le problème vient quand l'adresse est stockée en Base de données. En effet, la page semble être scannée alors qu'elle n'a pas été gérée en HTML avant (car c'est évidement une page PHP...).
    Et donc forcément, il me dit toujours que l'adresse n'existe pas puisqu'elle n'a pas été cherchée en BDD.

    Cela dit, pour developpez.net, comment se fait-il que je puisse effectuer une recherche sur une page du forum, sur des données stockées en base de données ou calculées depuis la base de données (par exemple, mon nombre de messages, affiché à coté de mon pseudo, sur cette page).

    Si vous avez une idée de mon erreur, je suis preneur

    Merci :p

    David

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Hum... cela viendrait du fait que je rentre mon adresse à explorer du type "page.php" alors que ça a l'air de marcher quand je tape "www.monsite.com/page.php".

    Pas pratique à gérér en local...

    Je ne dois pas tout saisir.
    Mais bon, ça a l'air de fonctionner...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/03/2013, 08h22
  2. Réponses: 5
    Dernier message: 31/03/2010, 23h59
  3. Réponses: 3
    Dernier message: 07/08/2006, 11h25
  4. Inclure un fichier externe sans utiliser les frames
    Par gazza dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/07/2006, 08h52
  5. Utilisation de fourier pour un fichier WAV
    Par Mitchdemalibu dans le forum Traitement du signal
    Réponses: 22
    Dernier message: 16/12/2005, 13h19

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