Récuperer des chaines entre deux balises PHP

Résolu
Salut j'utilse cette commande pour recuperer les url :

$marqueurDebutLien = "[début lien]";  
$debutLien = strpos( $text, $marqueurDebutLien ) + strlen( $marqueurDebutLien );  
$marqueurFinLien = "[fin lien]";  
$finLien = strpos( $text, $marqueurFinLien );  
$leLien = substr( $text, $debutLien, $finLien - $debutLien ); 


ça marche bien pour une seule URL.

Mais j'ai un peu de mal pour la transformer, de façon a ce qu'elle le fasse pour plusieur lien dans le texte, pas seulement un.

J'ai bien tenté de faire un boucle for() afin de repeter cette commande mais le resultat est catastrophique :

for($z=0;$z < $nombrimage;$z++)  
     { 
    
$marqueurDebutLien = '[url]';  
${'debutLien'.$z} = strpos( $commentaire, $marqueurDebutLien , $fin );  
$marqueurFinLien = '[/url]';  
${'finLien'.$z}= strpos( $commentaire, $marqueurFinLien ,$fin ); 
${'finLien'.$z} = ${'finLien'.$z}   ; 
${'leLien'.$z} = substr( $commentaire, ${'debutLien'.$z}, ${'finLien'.$z} - ${'debutLien'.$z} );  

$fin = ${'finLien'.$z} ; 
$tableau2[$z] = ${'leLien'.$z} ;  
$tableau2[$z] =  "<a href='$tableau2[$z]'>$tableau2[$z]</a>" ; 

$lesliens = $lesliens.$tableau2[$z]; 
     } 


Il s'avere que cela recupere mes url, mais decale le debut et fin des urls
Auriez vous une idée d'ou est mon probleme ?

merci pour votre aide....

7 réponses

  1. Salut,

    sous quelle forme est ton URL? (www.monsite.com.index.php[debut]www.google.fr[fin][debut]www.msn.fr[fin])
    0
    1. sous cette forme :

      [url]https://www.google.fr/?gws_rd=ssl[/url] du texte [url] https://www.google.com/?gws_rd=ssl[/url]

      j'ai mis [url] pour marquer le début et [/url] pour marquer la fin....

      encore une fois il y a des crochet sur mon /url, mais ça ce ne se voit dans c e forum.

      donc crochet /url crochet pour marquer la fin.

      je signale car je ne l'ai pas dit que je veux recuperer des urls dans un texte.

      la perssonne ecrit ça:

      j'aime ce site : (ma balise url) http://www.lesite.fr (ma fermeture balise url)

      et j'aime bien celui la : (ma balise url) http://www.lesite2.com (ma fermeture balise url)

      et je recupere biensur juste les deux URL entre les balises..

      as tu une idée ?
      0
      1. Donc si je comprend bien ton problème.

        Ton visiteur va saisir du texte et dire qu'il aime un lien. Prenons le texte suivant :
        $text = "moi j'aime bien ce lien [url]www.google.fr[/url] mais aussi ce lien [url]www.commentcamarche.net[/url]";

        Dans ce texte tu veux récupérer les liens pour les mettre sous balise <a href="www.google.fr">www.google.fr</a>.

        alors voila un bout de code :

        $content = preg_replace(''& lt;url& gt;(.+)& lt;/url& gt;'isU','& lt;a href="$1"& gt;$1& lt;/a& gt;', $text);

        (supprime les espaces entre le & lt; et & gt;)

        Et tu aura ta chaines $content qui sera de la forme :
        moi j'aime bien ce lien <a href="www.google.fr">www.google.fr</a> mais aussi ce lien <a href="www.commentcamarche.net">www.commentcamarche.net</a>

        Ai-je bon?
        0
        1. Oui c'est exactement ça, vraiment super ça fait pret de 4 heures que je me fait mal a la tete, j'avais fini par trouver une solution equivalente a la tienne : sur ce lien :

          http://www.expreg.com/lire-URL-source

          Je vais tout de meme essayer ton code, trop fort, merci.
          0
          1. aller c'est mon jour de bonté.

            Voilà un petit tuto qui peut te permettre d'aller plus loin dans ton script (texte en gras, italique, image, etc...)

            http://www.siteduzero.com/tutoriel-3-34703-insertion-de-balises-dans-une-zone-de-texte.html

            Bonne continuation.
            0
            1. Super, ça va m'etre tres utile... ... je cherchais justement un truc dans le genre, tu es un envoyé des cieux, lol...merci beaucoup en tout cas

              tres bonne soirée a toi...
              0
              1. Pas de prob. Si tu as besoin par la suite n'hésite pas.
                0