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 :

syntaxe fonction preg_replace [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Points : 21
    Points
    21
    Par défaut syntaxe fonction preg_replace
    Bonjour à tous.
    J'obtiens, après upload d'image par les utilisateurs de mon site une balise image qui peut prendre diverses formes :
    1/
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <IMG  width="380" height="95" src="http://monsite.fr/upload_files/img1.jpg">
    ou
    2/
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <IMG src="http://monsite.fr/upload_files/img1.jpg" width=760>
    ou
    3/
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <IMG style="WIDTH: 350px" src="http://monsite.fr/upload_files/img1.jpg" width=760 height=190>

    Pour l'affichage, je souhaite obtenir
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <IMG  width=100 src="http://monsite.fr/upload_files/img1.jpg">

    Dans le cas 1, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('`img([^>]+)src`', 'img width=100 src', $chaine);
    , j'arrive à remplacer tout entre IMG et SRC par width=100, mais dans les 2 autres cas, je bute...

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace('#<img.*(src=".+").*>#i', '<img width="100" $1 />', $chaine);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Merci Sabotage, mais dans les cas 2 et 3, les balises width et height situées après src ne sont pas supprimées.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu es sûr ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $chaine = '<IMG src="http://monsite.fr/upload_files/img1.jpg" width=760>';
    echo preg_replace('#<img.*(src=".+").*>#i', '<img width="100" $1 />', $chaine);
    // <img width="100" src="http://monsite.fr/upload_files/img1.jpg" />
     
    $chaine = '<IMG style="WIDTH: 350px" src="http://monsite.fr/upload_files/img1.jpg" width=760 height=190>';
    echo preg_replace('#<img.*(src=".+").*>#i', '<img width="100" $1 />', $chaine);
    // <img width="100" src="http://monsite.fr/upload_files/img1.jpg" />
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Non excuse moi. Ca marche impec. Merci.
    Problème supplémentaire : si dans ma chaîne, j'ai 2 balises image et que je souhaite appliquer le redimensionnement seulement à la première image.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as l'option dans preg_replace()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Merci pour tout.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Je reviens vers toi car en fait si j'ai ce type de chaine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = '<b>voici une image</b><br><img width="300" src="http://site.fr/photos/image1.gif"><br>elle est belle!!!<br>';
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo preg_replace('#img.*(src=".+").*>#', 'img width="100"$1>', $chaine);
    toute la partie après la balise image disparait!

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    ah je suis moche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     preg_replace('#<img.*(src=".+").*>#U', 'img width="100"$1>', $chaine);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2011
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 47
    Points : 21
    Points
    21
    Par défaut
    Impec!!!
    Encore merci.

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

Discussions similaires

  1. Fonction preg_replace() - compréhension syntaxe
    Par Marmotton76 dans le forum Langage
    Réponses: 5
    Dernier message: 04/10/2011, 09h39
  2. [RegEx] Syntaxe fonction ereg()
    Par alain31tl dans le forum Langage
    Réponses: 20
    Dernier message: 26/09/2006, 01h44
  3. Verification syntaxe fonction javascript
    Par calitom dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 12/09/2006, 16h02
  4. [PHP-JS] syntaxe fonction verification select
    Par calitom dans le forum Langage
    Réponses: 1
    Dernier message: 12/09/2006, 14h53
  5. [VB6] [Syntaxe] Fonction renvoyant un tableau d'objets
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 18/10/2002, 15h33

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