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 :

Isoler une chaine d'une chaine, problème de regex?


Sujet :

PHP & Base de données

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Isoler une chaine d'une chaine, problème de regex?
    Bonjour, Bonsoir,

    Alors voilà, cela fait maintenant quelques temps que je bloque sur un projet.

    Contexte: j'ai enregistrer le contenu d'une url avec file_get_contents, jusque là pas de soucis. J'ai donc le code source de la page. Ainsi, je dois isoler des liens pour ensuite les télécharger et les mettre sur un serveur.

    Le problème est donc que je n'arrive pas à isoler ces liens. Les url sont toujours contenues entre url?q= et &amp=sa.
    Ca donne quelque chose du style : url?q=http://www.abc.pdf&amp=sa

    J'ai donc essayé avec un preg_match() :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $result = preg_match('#/url\?q=(.*)&amp=sa#',$file,$regs);
    echo $regs[1];
    En fait, il me prend tout le contenu compris entre le premier url?q= et le dernier &amp=sa. Or je ne veux garder qu'à partir du http:// jusqu'au .pdf.

    J'ai donc cherché une fonction me le permettant et je me suis dis que je pourrai peut-être utiliser preg_split() ainsi que les assertions?

    Cependant, je ne sais pas quel regex mettre. Et je ne sais même pas si je suis sur la bonne piste?

    Autrement, une fois que j'aurai terminer cette étape, je n'ai aucune idée de comment les enregistrer. Enfin, je sais déjà que j'utiliserai certainement copy(). Si vous pouviez me donner un exemple bidon ou une indication s'il vous plait, je vous en serai très reconnaissant.

    Toute aide sera appréciée.

    Merci d'avance! Bonne journée, bonne soirée.

    Cordialement.

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result = preg_match_all('#/url\?q=(.*)\&amp=sa#',$file,$regs);
    Déjà all car preg_match s'arrête à la première occurence du masque, ensuite il manquait l'escape sur le &

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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