probleme de slash dans une expression reguliere

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par pssinjaune, 21 Mars 2010.

  1. pssinjaune
    pssinjaune WRInaute discret
    Inscrit:
    1 Octobre 2008
    Messages:
    111
    J'aime reçus:
    0
    Bonjour a tous,

    Je galère un peu sur un probleme que je rencontre lors d'un developpement.

    J'ai dans des articles, plusieures images que je souhaiterais redimensionner a la volée.
    Je parviens a recuperer les balises images extraite d'un article dans un tableau mais je n'arrive pas a "pondre" l'expression reguliere qui me permettra de changer la taille (width, height) de celle ci.

    Ce que je fais actuellement:
    -Je liste les images contenu dans un article du type <img src="http://www.test.com/lol.jpg" alt="" width="35" height="118" />

    -J'extrait les elements src, alt, width et height pour chaque images contenu grace a la fonction suivante:
    $match = "<img src=\"http://www.test.com/lol.jpg\" alt=\"\" width=\"35\" height=\"118\" />";
    preg_match_all("/(src|alt|height|width)*= *[\"\']{0,1}([^\"\'\ \>]*)/i",$match, $m);


    -Et ensuite, et c'est la que ca bloque, j'essaye de re-ecrire l'image en utilisant les infos ci-dessus et en me servant de l'element src comme identifiant:
    content = preg_replace('/<img(.*?)(src=\"http://www.test.com/lol.jpg\")(.*?)>/', ' IMAGE DE REMPLACEMENT ', $contenu);

    Le problème vient de fait qu'il y a des / dans l'expression reguliere et qu'il faut mettre des \ d'echapement devant,
    La fonction de remplacement marche si je l'utilise comme celà:
    content = preg_replace('/<img(.*?)(src=\"http:\/\/www.test.com\/lol.jpg\")(.*?)>/', ' IMAGE DE REMPLACEMENT ', $contenu);

    Le problème est que je ne connais pas l'url à l'avance, et je ne sait pas comment mettre un antislash devant chaque slash contenu dans l'url

    Si quelqu'un pouvait me dire comment faire celà ou plus simple, je suis preneur !

    merci d'avance pour votre aide
     
  2. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Je pense qu'il est temps que tu ailles lire la doc, tu verras, tu vas y apprendre plein de choses.

    Par exemple:-
    - tu peux utiliser n'importe quel autre délimiteur que / dans une regex: le délimiteur, c'est le premier et le dernier caractère (moins les flags genre i à la fin). Si tu utilises autre chose que / (les grands classiques sont # ou @ par exemple), tu pourras mettre des / à l'intérieur sans les escaper. Donc '#toto/tata#' est équivalent à '/toto\/tata/'

    - * coresspondant à un nombre quelconque de répétitions, y compris 0. Je pense que ce n'est pas vraiment ce que tu cherches
    - {0,1} peut être raccourci en ?
    - si tu utilises des ' comme délimiteur de chaîne, tu peux utiliser des " dedans sans les escaper (et vice-versa)

    Sinon je ne comprends pas bien ton problème. Tu dis que tu ne connais pas l'URL à l'avance. Pourquoi esssaies-tu de la matcher, alors?

    Ca aiderait probablement si tu nous disais d'où sort le contenu que tu veux modifier (c'est toi qui le génères, tu le récupères ailleurs), dans quelle mesure tu es sûr du format, et ce que tu veux remplacer exactement...

    Jacques.
     
  3. pssinjaune
    pssinjaune WRInaute discret
    Inscrit:
    1 Octobre 2008
    Messages:
    111
    J'aime reçus:
    0
    Bonjour jacques et merci de ta réponse,

    J'en ai mangé quelques années des regex mais j'ai jamais vraiment reussi a comprendre, du coup à chaque fois que je m'y met ca releve plus de la bidouille tirés de divers exemples trouvés sur le net que de la maitrise parfaite... et crois moi pourtant j'ai passé bcp de temps a chercher une solution.

    Mon contenu viens des utilisateurs qui peuvent integrer des images a leurs articles,
    Le probleme vient du fait que si l'image est trop grande, celà perturbe l'affichage sur mon site.
    Biensur dans mon scipt definitif, ce que je cherche a matcher (http://www.test.com/lol.jpg) n'est pas en dure dans le script mais est contenu dans une variable, j'ai voulu simplifier la lecture et la comprehension du post

    Grace a toi, je viens de tester ceci et ca fonctionne:
    content = preg_replace('@<img(.*?)(src=\"http://www.test.com/lol.jpg\")(.*?)>@', ' IMAGE DE REMPLACEMENT ', $contenu);

    Un grand merci a toi pour m'avoir enlever cette épine du pied,
    C'etait pourtant pas compliqué.... il fallait juste le savoir ! ;)

    merci encore
     
  4. forty
    forty WRInaute passionné
    Inscrit:
    30 Octobre 2008
    Messages:
    1 901
    J'aime reçus:
    0
    la fonction preg_quote permet d'échapper les caractères spéciaux dans une chaine variable.
     
  5. pssinjaune
    pssinjaune WRInaute discret
    Inscrit:
    1 Octobre 2008
    Messages:
    111
    J'aime reçus:
    0
    Forty LE Maitre regex !!

    Tu m'as deja super bien mis le pied a l'etrié sur urlrewriting pour le htacess !
     
Chargement...
Similar Threads - probleme slash expression Forum Date
Problème d'url vhost? (Slash qui disparait) Administration d'un site Web 23 Septembre 2016
Problème de slash dans l'url rewrite URL Rewriting et .htaccess 22 Juin 2009
Probleme de slash URL Rewriting et .htaccess 26 Novembre 2008
Probleme d'antislash. Développement d'un site Web ou d'une appli mobile 4 Juin 2008
[Résolu] Rewriting OVH problème avec un slash URL Rewriting et .htaccess 19 Février 2008
Problème avec les répertoires sans le slash final URL Rewriting et .htaccess 4 Janvier 2008
Problème avec les antislashes Développement d'un site Web ou d'une appli mobile 3 Novembre 2007
Probleme url rewriting avec slash URL Rewriting et .htaccess 12 Septembre 2007
Problème de slash dans .htaccess URL Rewriting et .htaccess 12 Août 2007
[Réglé]problème rewritting slashs URL Rewriting et .htaccess 25 Mars 2006
Probleme de visibilité de ma page Facebook Facebook il y a 57 minutes
problème avec le développeur Droit du web (juridique, fiscalité...) 22 Juin 2022
Problème désindexation des pages de Google Débuter en référencement 21 Juin 2022
Problème d'indexation de pages sur Google Problèmes de référencement spécifiques à vos sites 31 Mai 2022
problème de redirection non souhaitée Administration d'un site Web 28 Avril 2022
Problème d'indexation Produits Prestashop Crawl et indexation Google, sitemaps 28 Avril 2022
Problème d'affichage des campagnes Google Ads dans un tableau de bord Data Studio AdWords 26 Avril 2022
Problème de vitesse d'affichage des pages sur Analytics Google Analytics 26 Avril 2022
Problème : Google Crawl et Index des pages en No Index et bloqué par le robot.txt Crawl et indexation Google, sitemaps 26 Avril 2022
Problème avec GA4 : nb de visiteurs temps réel et par jour Google Analytics 19 Avril 2022