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 :

Remplacer texte par photo


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 27
    Par défaut Remplacer texte par photo
    Bonjour,

    Merci pour votre aide precieuse.

    Je cherche desesperement un script.
    J'ai même essayé de le faire - au debut et à la fin.

    Je m'explique

    Sur mon serveur j’ai un repertoire « USA » qui contient une page « usa.php » et un repertoire « photos ».

    Dans la page « usa.php » - Il affiche un texte qui se trouve dans une table sql. « tableusa » avec le champ « texteusa ».

    Ce texte est coupé par des [placephoto] comme dans l’éxemple ci-dessous.

    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    [placephoto]
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    [placephoto]
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla
    Blablablalbabla blabla bla blablabla

    Je veux que lorsqu’il lit et affiche le texte et qu’il trouve le terme [placephoto] il prenne et affiche une photo au hasard dans le répertoire « photos » - Il faut qu’il affiche la photo a la place du terme [placephoto] – Qu’il continus a afficher la suite du texte et si il retrouve d’autres termes [placephoto]
    Qu’il prenne et affiche une photo au hasard dans le répertoire « photos » et rebolote jusqu’à la fin du texte.


    Franchement merci pour votre aide.

    Vous êtes les

  2. #2
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 27
    Par défaut remplacer texte par photo
    Re,

    J'ai trouvé ceci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php 
    function moulinette() 
    { 
     
    $contenu = str_replace('[placephoto]',"<imgsrc='photos/xxxx.jpg>",$contenu); 
    } 
    ?>
    merci de me dire si je suis dans la bonne voie.
    Par contre je n'arrive pas a faire le script pour qu'il change plusieurs fois dans le meme texte.

    Merci pour votre aide

  3. #3
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    Bonjour,

    Le problème avec str_replace, c'est que tous les "[placephoto]" seront remplacés par la même photo.

    Pour avoir des photos différentes à chaque remplacement, tu peux t'en sortir en utilisant les fonctions strpos et substr_replace dans une fonction récursive ou encore en utilisant preg_replace_callback et une fonction de rappel qui choisisse au hasard une image dans ton répertoire.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 27
    Par défaut
    Merci pour ta réponse.
    Voilà mon exemple (de base pour comprendre)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?
    $texte ="<br> gfdgdfgdfgd <br> [test]<br> fgdfgdfgdfgdgdgdfgdgdf <br> [test]<br> gdgdgdgdgdgdfgdgdgdfgdfgdfgdf <br> [test]<br> gdfgdgdfdfgdgdgdgdgdgdggdgffd";
    $texte = str_replace('[test]',"<br><br><imgsrc='photos/x.jpg><br><br>",$texte); 
    echo "<br><br><br>";
    echo $texte;
    ?>
    je n'arrive pas à me servir de la fonction preg_replace_callback (je dois être tout naze.

    qq1 peut me mettre en script la fonction preg_replace_callback avec mon exemple de script du dessus ou m'expliquer comment cela marche car j'ai regardé mais

  5. #5
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Par défaut
    L'utilisation de preg_replace_callback n'est pas des plus évidente, c'est pour ça que je te proposais en premier d'utiliser strpos et substr_replace (ça ferait un script plus simple à comprendre).

    Un exemple d'utilisation de preg_replace_callback (non testé, et sans intérêt, puisque sans image aléatoire) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?
    $texte ='<br> gfdgdfgdfgd <br> [test]<br> fgdfgdfgdfgdgdgdfgdgdf <br> [test]<br> gdgdgdgdgdgdfgdgdgdfgdfgdfgdf <br> [test]<br> gdfgdgdfdfgdgdgdgdgdgdggdgffd';
     
    function relpace_test($matches)
    {
        return '<br><br><imgsrc="photos/x.jpg"><br><br>';
    }
     
    $texte = preg_replace_callback('@\[test\]@', 'replace_test', $texte); 
     
    echo $texte;
    ?>

  6. #6
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 27
    Par défaut
    Merci bcp Eusebe.

    Peut on rajouter dans la fonction replace-test dans le return une fonction RND en php pour choisir au hasard une photo dans mon repertoire.

    J'ai trois images 1.jpg 2.jpg et 3.jpg dans un repertoire 'photos'

    Puis je mettre a la place de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    return '<br><br><imgsrc="photos/x.jpg"><br><br>';
    le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    return 
    {
    $numero = rand(1,3);
    '<br><br><imgsrc="photos/".$numero.".jpg"><br><br>';
    }
    Merci pour votre aide

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

Discussions similaires

  1. [OpenOffice][Texte] [MACRO] Remplacer texte par une image
    Par Ry_Yo dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 24/10/2011, 11h59
  2. Remplacer texte par image
    Par zack1475 dans le forum Langage
    Réponses: 4
    Dernier message: 02/04/2011, 19h59
  3. Remplacer texte par une image
    Par einsteineuzzz dans le forum VBA Word
    Réponses: 7
    Dernier message: 26/04/2010, 18h41
  4. PDF - Remplacer texte par un autre
    Par chicorico dans le forum Documents
    Réponses: 10
    Dernier message: 07/07/2009, 18h40
  5. Remplacer texte par image
    Par clara78 dans le forum Langage
    Réponses: 1
    Dernier message: 02/07/2009, 09h24

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