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 :

Récupérer la source d'une image avec preg_match


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 615
    Points : 823
    Points
    823
    Par défaut Récupérer la source d'une image avec preg_match
    Bonjour,
    A partir d'une chaîne html, je veux retrouver la source d'une image avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	$data	= file_get_contents(CUSTOM_PATH."customized.htmlblockImg.html");
    	var_dump($data);
    	preg_match('#src="(.)"#iU',$data,$img);
    	var_dump($img);
    La ligne 4 renvoie un tableau vide.
    Chaîne de départ (ligne 2):
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <div class="blockImg left">
    	<img src="customs/2/pictures/home.png"><br>
    	<figcaption>Pierre Dupont (1896-1954)</figcaption>
    </div>'

  2. #2
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 905
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 905
    Points : 6 693
    Points
    6 693
    Par défaut
    C'est normal, il manque un quantificateur après le point. En l'état tu demandes une sous-chaîne d'un seul caractère entre deux guillemets.

    Mais comme c'est du html tu peux éviter la regex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    libxml_use_internal_errors(true);
     
    $dom = new DOMDocument;
    $dom->loadHTMLFile(CUSTOM_PATH . 'customized.htmlblockImg.html');
     
    $imgNode = $dom->getElementsByTagName('img')->item(0);
    $result = $imgNode->getAttribute('src');

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 615
    Points : 823
    Points
    823
    Par défaut
    Finalement suite à ta remarque, j'ai ajouté un + après le point. J'ai préféré cette solution au travail sur le DOM. Question d'habitude et de longueur du code.
    En tous cas, merci.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/12/2011, 15h53
  2. récupérer une image avec readfile
    Par julien1451 dans le forum Langage
    Réponses: 11
    Dernier message: 27/01/2010, 01h06
  3. Récupérer taille d'une image avec IE
    Par olbouss dans le forum jQuery
    Réponses: 5
    Dernier message: 03/11/2009, 09h20
  4. WPF - Source d'une image avec chemin relatif
    Par Bernardtapis dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 01/10/2009, 14h37
  5. changer la source d'une image avec Firefox
    Par couetbis dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 07/11/2007, 22h45

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