Soucis d'erreur avec des BBcodes - regex

*Jeanjan* Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
*Jeanjan* Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
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

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
*Jeanjan* Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
*Jeanjan* Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
*Jeanjan* Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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
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
*Jeanjan* Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Je te met tout le fichier qui rencontre un soucis, cela peut etre t'être utile :
https://pastebin.com/Cj2JLi0D
0
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
*Jeanjan* Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bon, et bien merci quand même, je vais tenter de reformuler ma regex pour plus avoir l'erreur ! ^^
0
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
*Jeanjan* Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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