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 :

Remplacement dans une chaine avec PHP, possible ou impossible ?


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Remplacement dans une chaine avec PHP, possible ou impossible ?
    Bonjour,

    J'ai un truc qui me semble bien compliqué à réaliser...

    J'ai une chaine qui contient le code HTML d'une page web.
    Dans cette chaine se trouve 1 ou plusieures portions du genre :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="http://mondomaine.com/video.gif?w=AAA&h=BBB&bd=CCC&hd=DDD">

    Chaqu'une de ces sections doit être remplacée par un code du genre :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <div id="numeroN">
    Largeur : AAA<br>
    Hauteur : BBB<br>
    Fichier BD : CCC<br>
    Fichier HD : DDD
    </div>

    Donc par exemple si dans la chaine se trouve ce code :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <img src="http://mondomaine.com/video.gif?w=320&h=450&bd=test.mov&hd=essai.mov">
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <img src="http://mondomaine.com/video.gif?w=450&h=200&bd=alpha.mov&hd=beta.avi">
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <img src="http://mondomaine.com/video.gif?w=180&h=50&bd=gamma.mov&hd=delta.mov">
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

    La transformation devra retourner cela :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <p id="numero1">
    Largeur : 320<br>
    Hauteur : 450<br>
    Fichier BD : test.mov<br>
    Fichier HD : essai.mov
    </p>
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <p id="numero2">
    Largeur : 450<br>
    Hauteur : 200<br>
    Fichier BD : alpha.mov<br>
    Fichier HD : beta.avi
    </p>
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <p id="numero3">
    Largeur : 180<br>
    Hauteur : 50<br>
    Fichier BD : gamma.mov<br>
    Fichier HD : delta.mov
    </p>
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

    Je ne sais comment faire, ni si cela est réalisable.

    Merci de votre aide !

  2. #2
    Fabouney
    Invité(e)
    Par défaut
    Bonjour,

    c'est tout à fait possible.

    exécute le code que je viens de faire pour te montrer l'idée, affiche la source et vois le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    $content = <<<EOF
    Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <img src="http://mondomaine.com/video.gif?w=320&h=450&bd=test.mov&hd=essai.mov">
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <img src="http://mondomaine.com/video.gif?w=450&h=200&bd=alpha.mov&hd=beta.avi">
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    <img src="http://mondomaine.com/video.gif?w=180&h=50&bd=gamma.mov&hd=delta.mov">
    bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
    EOF;
     
    $pattern = '/<img src="http:\/\/.+\?w=(.*)&h=(.*)&bd=(.*)&hd=(.*)">/';
    $i=1;
    function achanger($martchs)
    {
    	global $i;
    	return "<p id=\"numero$i\">\nlargeur : ".$martchs[1]."<br>\nHauteur : ".$martchs[2]."<br>\nFichier BD : ".$martchs[3]."<br>\nFichier HD : ".$martchs[4]."\n</p>";
    	$i++;
    }
    $content = preg_replace_callback($pattern,'achanger',$content);
    echo $content;
    j'ai pris ton exemple de source HTML.

    Cordialement.

Discussions similaires

  1. Replace - remplacement dans une chaine
    Par petiteso dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/06/2007, 11h14
  2. Réponses: 1
    Dernier message: 30/11/2006, 17h49
  3. [Regex] Remplacement d'une chaîne avec $
    Par TSnarfK dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 27/01/2006, 10h44
  4. Réponses: 2
    Dernier message: 05/01/2006, 13h15
  5. Remplacer dans une chaine de caractères à partir de la fin
    Par daddyel dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 02/01/2006, 11h31

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