Soucis d'erreur avec des BBcodes - regex

*Jeanjan* Messages postés 11 Statut Membre -  
*Jeanjan* Messages postés 11 Statut Membre -
Bonjour à vous :]

Je viens vous voir car je rencontre des soucis dans les bbcodes que je veux mettre en place :

$texte = preg_replace('#\[strike](.+)\[/strike]#isU','<span style="text-decoration:[http://www.commentcamarche.net/download/telecharger-34098305-line line]-through;">$1</span>',$texte);


Dès que je l'insère dans mon code, j'ai cette erreur : ( ! ) Parse error: syntax error, unexpected T_VARIABLE in C:\wamp\www\Site - Php\index.php on line 44 (qui est la ligne de cette regex !)

Je ne comprends pas, car les trois autres que j'ai pu faire son identique :
 // Bloc des balises [b]-[/b]
 $texte = preg_replace('#\[b](.+)\[/b]#isU', '<strong>$1</strong>', $texte);
 // Bloc des balises [u]-[/u]
 $texte = preg_replace('#\[i](.+)\[/i]#isU', '<em>$1</em>', $texte);
 // Bloc des balises [i]-[/i]
 $texte = preg_replace('#\[u](.+)\[/u]#isU','<span style="text-decoration:underline;">$1</span>',$texte);


Auriez vous une idée que j'aurais pu zapper ?

Merci d'avoir pris le temps de lire mon soucis ! :]

12 réponses

  1. katsuo49 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   25
     
    peux-tu poster la lignes contenant du code précédent la ligne indiquée ?
    0
  2. *Jeanjan* Messages postés 11 Statut Membre
     
    Voici le bout de code en question ! :] (merci de prendre le temps de regarder !!)

    $reponse = $bdd->query('SELECT * FROM accueil ORDER BY id DESC LIMIT 0, 1');
    while ($donnees = $reponse->fetch())
    {
    $texte = nl2br(htmlspecialchars($donnees['message']));
    
    //BBcode
    	// Bloc des balises [b]-[/b]
    	$texte = preg_replace('#\[b](.+)\[/b]#isU', '<strong>$1</strong>', $texte);
    	// Bloc des balises [u]-[/u]
    	$texte = preg_replace('#\[i](.+)\[/i]#isU', '<em>$1</em>', $texte);
    	// Bloc des balises [i]-[/i]
    	$texte = preg_replace('#\[u](.+)\[/u]#isU','<span style="text-decoration:underline;">$1</span>',$texte);
    	// Bloc des balises [strike]-[/strike]
        $texte = preg_replace('#\[strike](.+)\[/strike]#isU','<span style="text-decoration:line-through;">$1</span>',$texte);
    	
    echo $texte;
    ?>
    0
  3. katsuo49 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   25
     
    Je n'ai pas d'erreur chez moi quand j'exécute ton code.
    J'ai juste modifié pour exécuter les regex (essaie de donner un code exécutable directement après copier-coller c'est plus pratique pour nous) :

    <?php
    //~ $reponse = $bdd->query('SELECT * FROM accueil ORDER BY id DESC LIMIT 0, 1');
    //~ while ($donnees = $reponse->fetch())
    //~ {
    $texte = nl2br(htmlspecialchars('dfsdfsd sd fsd d [strike]fsd[/strike] fsd fs sd'));
    
    //BBcode
     // Bloc des balises [b]-[/b]
     $texte = preg_replace('#\[b](.+)\[/b]#isU', '<strong>$1</strong>', $texte);
     // Bloc des balises [u]-[/u]
     $texte = preg_replace('#\[i](.+)\[/i]#isU', '<em>$1</em>', $texte);
     // Bloc des balises [i]-[/i]
     $texte = preg_replace('#\[u](.+)\[/u]#isU','<span style="text-decoration:underline;">$1</span>',$texte);
     // Bloc des balises [strike]-[/strike]
        $texte = preg_replace('#\[strike](.+)\[/strike]#isU','<span style="text-decoration:line-through;">$1</span>',$texte);
     
    echo $texte;
    ?>
    
    0
  4. *Jeanjan* Messages postés 11 Statut Membre
     
    Oups, désolé ! (C'est mon premier post !)

    Je comprends pas d'ou peut provenir l'erreur alors ... Dès que je supprime le/la dernier/e regex, j'ai plus d'erreur !
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. katsuo49 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   25
     
    essaie d'afficher avec un var_dump($texte); juste avant la dernière regex et envoie la dernière sortie.
    0
  7. *Jeanjan* Messages postés 11 Statut Membre
     
    Dès que je met la dernière regex, rien ne s'affiche a part l'erreur ! Du coup, je l'ai supprimé et mis le var_dump() et ca me donne ceci :

    string '<strong>Bonjour,</strong><br />

    <em>Bienvenue</em> <span style="text-decoration:underline;">sur</span> [strike]notre/strike site.' (length=132)

    Rien d'anormal... Bizarre !
    0
  8. katsuo49 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   25
     
    En effet aucune erreur en apparence..
    J'ai pas d'autre idée pour le coup :/
    0
  9. katsuo49 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   25
     
    Toujours aucune erreur de syntax chez moi quand je prend ton fichier complet...
    0
  10. *Jeanjan* Messages postés 11 Statut Membre
     
    Bon, et bien merci quand même, je vais tenter de reformuler ma regex pour plus avoir l'erreur ! ^^
    0
  11. katsuo49 Messages postés 330 Date d'inscription   Statut Membre Dernière intervention   25
     
    Je serai toi j'essaie d'installer xampp ou une autre version de wamp (avec une autre version de php donc) il est possible que l'erreur vienne de ta version de php
    0
  12. *Jeanjan* Messages postés 11 Statut Membre
     
    Alors, j'ai effacé toute mes regex, de A à Z, et j'ai tout repris à 0, et ca marche ...
    Va t'en savoir pourquoi ! XD

    Bref, merci beaucoup d'avoir pris de ton temps pour me répondre et tenter de résoudre mon soucis, merci beaucoup !

    (juste une dernière question, ma regex pour un lien cliquable était elle correcte ?
    $texte = preg_replace('#(http|https|ftp)://([-éa-zA-Z0-9\/\.\?_=\#\@:~\{\}&;]{20})(.+)([-éa-zA-Z0-9\/\.\?_=\#\@:~\{\}&;]{5})#i', ' <a href="$0" target="_blank">$1://$2[...]$4</a> ', $texte);
    


    Ou vaut il mieux :
    $texte = preg_replace('#(http|https|ftp)://([\w\/\.\?_=\#\@:~\{\}&;]{20})(.+)([\w\/\.\?_=\#\@:~\{\}&;]{5})#i', ' <a href="$0" target="_blank">$1://$2[...]$4</a> ', $texte);


    Et dans la première regex, à quoi sert "-é" (que je ne comprends pas, j'ai trouvé sur un fofo qu'une personne disait que c'était à mettre !))

    Bref, merci à toi :]
    0