Soucis d'erreur avec des BBcodes - regex

Fermé
*Jeanjan* Messages postés 9 Date d'inscription lundi 10 novembre 2014 Statut Membre Dernière intervention 13 novembre 2014 - Modifié par *Jeanjan* le 10/11/2014 à 22:32
*Jeanjan* Messages postés 9 Date d'inscription lundi 10 novembre 2014 Statut Membre Dernière intervention 13 novembre 2014 - 11 nov. 2014 à 18:30
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 vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
10 nov. 2014 à 22:47
peux-tu poster la lignes contenant du code précédent la ligne indiquée ?
0
*Jeanjan* Messages postés 9 Date d'inscription lundi 10 novembre 2014 Statut Membre Dernière intervention 13 novembre 2014
10 nov. 2014 à 22:57
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 vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
Modifié par katsuo49 le 10/11/2014 à 23:05
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 lundi 10 novembre 2014 Statut Membre Dernière intervention 13 novembre 2014
10 nov. 2014 à 23:12
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 vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
10 nov. 2014 à 23:21
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 lundi 10 novembre 2014 Statut Membre Dernière intervention 13 novembre 2014
10 nov. 2014 à 23:31
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 vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
10 nov. 2014 à 23:41
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 lundi 10 novembre 2014 Statut Membre Dernière intervention 13 novembre 2014
10 nov. 2014 à 23:53
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 vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
11 nov. 2014 à 00:15
Toujours aucune erreur de syntax chez moi quand je prend ton fichier complet...
0
*Jeanjan* Messages postés 9 Date d'inscription lundi 10 novembre 2014 Statut Membre Dernière intervention 13 novembre 2014
11 nov. 2014 à 09:10
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 vendredi 19 juin 2009 Statut Membre Dernière intervention 11 novembre 2014 25
11 nov. 2014 à 10:23
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 lundi 10 novembre 2014 Statut Membre Dernière intervention 13 novembre 2014
11 nov. 2014 à 18:30
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