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 :

Modifier src="" des images [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut Modifier src="" des images
    Bonjour,

    J'ai une regex qui me pause des soucis, en effet, comme l'indique le titre, je dois modifier le contenu de la balise src d'une image. l'objectif est de rajouter un . (point) devant l'url de la photo

    Je travail en PHP 5.

    Voilà ce que j'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	$i ='"';
    	$contenu = stripslashes($tab_periple['contenu']);
    	$contenu2 = preg_replace('#src=(.*\.jpg)"#','src='.$i.'.$1'.$i.'',$contenu);
    "

    C'est fonctionnel seulement cela ne marche pas si c'est des images gif ou png. Aussi le second problème est que parfois la balise <img se ferme soit comme ça : " />" où comme ça " >".

    Pouvez-vous m'aider à finaliser cette regex ?

    Par avance un grand merci!


    Edit : technique du flemmard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = str_replace('src="/', 'src="./', $contenu);
    Heretik

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Heu, c'est loin d'être une technique de flemmard et c'est la technique que je te recommande. str_replace est au moins 10x plus rapide qu'une regexp. D'une manière générale, partout où tu peux remplacer une regexp par un strpos, un substr ou un str_replace, fais-le, le gain de perf est énorme.

    Enfin, si tu tiens à te faire mousser auprès des filles ou à devenir un gourou dans ta boite, tu peux mettre des regexp partout, ça en jette un max

    -- Edit

    La bonne manière serait d'utiliser DOMDocument pour trouver tes nodes et les modifier avec DOMElement::getAttribute et DOMElement::setAttribute (aaaah Stealh35, sors de me tête )

  3. #3
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    oui les regex sont à utiliser avec parcimonie...

    Sinon pour les extensions des fichiers, tu peux en choisir dans une liste (ou booléen) :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $contenu2 = preg_replace('#src=(.*\.(jpg|gif|png))"#','src='.$i.'.$1'.$i.'',$contenu);

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Merci beaucoup pour ces éléments de réponse.

    par-contre DOM, je me le réserve pour dans un petit moment lors de mon apprentissage d'ajax :-)

    J'ai un autre souci qui je pense doit être réglée avec une regexp, je vais ouvrir un nouveau post et clôturer celui-ci.

  5. #5
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    par-contre DOM, je me le réserve pour dans un petit moment lors de mon apprentissage d'ajax :-)
    Ajax s'attache plus à la manipulation du XHR (ou de l'activeX correspondant pour Internet Explorer) qu'a la manipulation du DOM (ce qui est la grande spécialité de jQuery et Sizzle).
    Enfin, on retrouve les mêmes principes, y compris les XPath et XSL(T) qui sont d'une grande puissance dans PHP.
    Je te conseille vivement de te former sur XML un de ces quatre matins, ça change complètement la façon de concevoir les applis web selon moi.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    Ajax s'attache plus à la manipulation du XHR (ou de l'activeX correspondant pour Internet Explorer) qu'a la manipulation du DOM (ce qui est la grande spécialité de jQuery et Sizzle).
    Enfin, on retrouve les mêmes principes, y compris les XPath et XSL(T) qui sont d'une grande puissance dans PHP.
    Je te conseille vivement de te former sur XML un de ces quatre matins, ça change complètement la façon de concevoir les applis web selon moi.
    Je vais donc me renseigner sur ces points là, merci pour le retour sur expérience.

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

Discussions similaires

  1. Modifier des images par programmation : C ou Flash ou ?
    Par R.L. dans le forum Développement 2D, 3D et Jeux
    Réponses: 7
    Dernier message: 11/05/2007, 15h17
  2. Configurer le chemin par défaut de recherche des images (balise <img src>)
    Par DJ Caësar 9114 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 06/03/2007, 08h00
  3. Quotes sur des valeurs numériques
    Par shadeoner dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 05/05/2006, 14h56
  4. quote dans des valeurs d'une colonne SET
    Par Jean Fi dans le forum Requêtes
    Réponses: 6
    Dernier message: 30/03/2006, 20h16
  5. Réponses: 5
    Dernier message: 30/05/2005, 16h58

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