Aller au contenu

[Regex] Fonction de parsage.


sloshy

Sujets conseillés

Bonjour à tous et toutes,

Voilà j'ai un bug dans ma fonction de parsage de texte.

Voici ma fonction

function parseur($texte)
{
$article = nl2br(stripslashes($texte));

$article = preg_replace('!\[b\](.+)\[/b\]!isU', '<strong>$1</strong>', $article);
$article = preg_replace('!\[i\](.+)\[/i\]!isU', '<em>$1</em>', $article);
$article = preg_replace('!\[u\](.+)\[/u\]!isU', '<u>$1</u>', $article);
$article = preg_replace('!\[color=(red|green|blue|yellow|purple|olive)\](.+)\[/color\]!isU', '<span style="color:$1">$2</span>', $article);
$article = preg_replace('!\[img\](.+)\[/img\]!i', '<img src="$1" alt="Image_utilisateur" />', $article);
$article = preg_replace('!\[mail\](.+)\[/mail\]!i', '<a href="mailto:$1">$1</a>', $article);
$article = preg_replace('!\[url="(.+)"](.+)\[/url\]!i', '<a href="$1">$2</a>', $article);
$article = preg_replace('!([^"])(http://[a-z0-9._/-]+)([^"])!i', '$1<a href="$2">$2</a>$3', $article);

$article = preg_replace(':8','<img src="/scripts/membres/smileys/cool.gif" alt="cool" />', $article);
$article = preg_replace(':)','<img src="/scripts/membres/smileys/clin_oeil.gif" alt="clin_oeil" />', $article);
$article = preg_replace(':?','<img src="/scripts/membres/smileys/fou.gif" alt="fou" />', $article);
$article = preg_replace(':devil','<img src="/scripts/membres/smileys/devil.gif" alt="devil" />', $article);
$article = preg_replace(':oups','<img src="/scripts/membres/smileys/oups.jpg" alt="oups" />', $article);
$article = preg_replace(':cache','<img src="/scripts/membres/smileys/cache.gif" alt="cache" />', $article);
$article = preg_replace(':rouge','<img src="/scripts/membres/smileys/rougi.gif" alt="rougi" />', $article);
$article = preg_replace(':unsure','<img src="/scripts/membres/smileys/unsure.gif" alt="unsure" />', $article);
$article = preg_replace(':wOOt','<img src="/scripts/membres/smileys/wOOt.gif" alt="woot" />', $article);

return $article;
}

C'est pas beau hein non :sick:

J'appel cette fonction dans ce script:

<?php require_once ("/homepages/46/d141731084/htdocs/journal/scripts/config.inc.php");?>

<?php
entete("Cyberlianpost .:News de la Une:.");
connexion();

echo '<h2 id="titreContenu">A la Une</h2>';
//Récupertion de la news selectionnée.
$id = $_GET['id'];
$retour = mysql_query("SELECT * FROM actualite WHERE id=$id");
while ($donnees = mysql_fetch_array($retour))
{
//Parsage de l'entrée
parseur($donnees['article']);

$auteur = $donnees['auteur'];

//Ecriture de la news
echo "<p><strong>".$donnees['titre']. "</strong></p>
<p>".$article."</p>
<p> <strong>Article écrit par " .$auteur. "</strong><i> le " .date('d/m/Y', $donnees['timestamp']). "</i></p>";
}

mysql_close();
piedPage();
?>

Seulement voilà, le script comme ça n'affiche pas l'article (mais bien le reste).

En plus si je commente la ligne "parseur($donnees['article']); et que j'ajoute une ligne du style $article = $donnees['article']; plus bas dans l'écriture de la news, l'article s'affichera.

J'en conclu donc que ma faute est dans ma fonction, mais j'ai beau tout retourné je ne trouve pas.

Il y aurait il une ame charitable pour m'aider?

PS: je sais mes regex sont mal foutue, mais j'ai un mal de chien à les faires, et elle fonctionne (enfin devrait fonctionnée).

EDIT// --

suis con, j'ai completement oublié d'assigné une variable pour récuperer ce que ma fonction retourne :nonono:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...