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

PHP & Base de données Discussion :

Une histoire de preg_replace [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Par défaut Une histoire de preg_replace
    Bonjour,

    J'ai mis en place (un peu l'aide avec du SdZ) un système de BBcode mais j'ai un souci avec ce message :

    Warning: preg_replace() [function.preg-replace]: No ending delimiter '`' found in /var/www/vhosts/free-h.net/subdomains/stargate-andromeda/httpdocs/pages/index.php on line 50
    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
     
    		$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
    		while ($donnees = mysql_fetch_array($retour)){
    			$id = stripslashes($donnees['id']);
    			$titre = stripslashes($donnees['titre']);
    			$contenu = $donnees['contenu'];
    			$timestamp = stripslashes($donnees['timestamp']);
    			$date = date("d/m/Y \&\a\g\\r\a\\v\e\; H:i",$timestamp);
     
    				// Parsage des balises
    				$bbcode = array(
    					'`&lt;left&gt;(.+)&lt;/left&gt;`isU', //Position du texte
    					'`&lt;center&gt;(.+)&lt;/center&gt;`isU',  
    					'`&lt;right&gt;(.+)&lt;/right&gt;`isU',
    					'`&lt;b&gt;(.+)&lt;/b&gt;`isU', //Mise en forme du texte
    					'`&lt;i&gt;(.+)&lt;/i&gt;`isU',
    					'`&lt;u&gt;(.+)&lt;/u&gt;`isU',
    					'`&lt;strike&gt;(.+)&lt;/barre&gt;`isU',
    					'`&lt;size=(.+)&gt;(.+)&lt;/size&gt;`isU', //Taille du texte
    					'`&lt;list&gt;(.+)&lt;/list&gt;`isU', //Listage du texte
    					'`&lt;url&gt;(.+)&lt;/url&gt; `isU', //Insertion d'éléments (URL, IMAGE)
    					'`&lt;url=(.+)&gt;(.+)&lt;/url&gt;`isU',
    					'`&lt;img&gt;(.+)&lt;/img&gt;`isU',
    					'`&lt;add&gt;`isU',
    					'`&lt;edit&gt; isU',
    					'`&lt;del&gt;`isU',
    					'`&lt;hr&gt;`isU'
    				);
     
    				$html = array(  
    					'<p align="left">$1</p>',  
    					'<p align="center">$1</p>',  
    					'<p align="right">$1</p>',
    					'<b>$1</b>',
    					'<i>$1</i>',
    					'<u>$1</u>', 
    					'<s>$1</s>',
    					'<h$1>$2</h$1>',
    					'<ul>$1</ul>',
    					'<a href="$1">$1</a>',
    					'<a href="http://$1">$2</a>',
    					'<img src="$1" />',
    					'<img src="images/BBcode/add.png" /> $1',
    					'<img src="images/BBcode/edit.png" /> $1',
    					'<img src="images/BBcode/del.png" /> $1',
    					'<hr>'
    				);
    #				$contenu = htmlspecialchars($contenu);
    				$contenu = preg_replace($bbcode, $html, $contenu); //Ligne 50
     
    				// Retours à la ligne
    				$contenu = preg_replace('`\n`isU', '<br />', $contenu);
    				if (get_magic_quotes_gpc()) {
    					$contenu = stripslashes($contenu);
    				}
     
     
    			echo('<table width="100%">
    				<tr>
    					<td>'.$titre.'</td>
    				</tr>
    				<tr>
    					<td><ul>'.$contenu.'</ul></td>
    				</tr>
    				<tr>
    					<td align="right"><i>Le '.$date.'</i></td>
    				</tr>
    			</table>
    			<hr>');
    			$donnees++;
    		}
    ?>
    J'ai passé plus de 1h10 à trouver et je ne vois pas ce qui cloche.

    D'avance, merci

  2. #2
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    Bonjour,

    Je pense que ce sont tes délimiteurs qui ne sont pas corrects.

    Tu utilise : "`"

    Préfère le dièse : "#"

    ou le slash : "/"

    C'est une idée...

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Par défaut
    J'ai essayé mais je crois que j'ai du faire une erreur quelque part

    Edit : L'erreur venait de

    Edit 2 : isU est vraiment utile ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Si, ` est parfaitement correct en tant que délimiteur.

    L'erreur, en revanche, est à cette ligne, due à une coquille, où, du coup, le délimiteur de fin de motif est absent :

    Citation Envoyé par selmac594
    isU est vraiment utile ?
    Seule l'option liée à la casse (i), a, ici, réellement un sens.

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Par défaut
    Ton message a croisé le mien alors que je l'éditais ^^

    *Question avec la réponse*

    Bon, je crois que je suis un peu long a rédiger.

    Merci de ton aide.

    Selmac594

    P.S. Je marque résolu et je deleste

  6. #6
    Membre émérite Avatar de sharrascript
    Homme Profil pro
    Développeur Web indépendant
    Inscrit en
    Avril 2007
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web indépendant

    Informations forums :
    Inscription : Avril 2007
    Messages : 678
    Par défaut
    oui, en effet le ` est autorisé, mais parfois pour la lecture c'est difficile de trouver un oublie et l'on peut confondre avec ', alors qu'avec le # on aurait de suite vu la coquille.

    Pour ma part c'est vraiment visuel, c'est pour cela que je préfère utiliser # ou /.

    Voilou, bonne soirée à tous

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

Discussions similaires

  1. Une histoire de compte à rebours (avec formulaire)
    Par Olivier14 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 04/03/2009, 13h43
  2. Une histoire de popup
    Par zoidy dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 02/06/2006, 14h39
  3. [RegEx] Remplacer une chaîne avec preg_replace
    Par GregPeck dans le forum Langage
    Réponses: 3
    Dernier message: 08/12/2005, 12h21
  4. Une histoire de lien...
    Par sloshy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 25/08/2005, 23h13
  5. [JAR][debutant] encore une histoire de classpath
    Par blaz dans le forum Général Java
    Réponses: 6
    Dernier message: 27/07/2005, 12h28

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