Créer un compte
Connexion

Une fonction et plusieurs variable

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
momolamasse
17/06/2011 à 19:09:37
momolamasse
Membre
Bonjour, j'ai un petit problème. J'ai deux système, un système de news situé sur la page index.php et un système d'article où l'on peut voir les articles sur la page show.php?id=(id de la news). J'ai un fichier PHP nommé view.php qui permet de parser, pour l'instant, le système de news et je souhaiterai l'utiliser pour parser aussi le système d'articles.
La variable $contenu équivaut au contenu de la news.
La variable $article équivaut au contenus de l'article.
J'ai procédé comme çela :



<?php

function parseZCode() {
        // Parsage des balises
        $zcode = array(  
                '`\[italique\](.+)\[\/italique\]`isU',  
                '`\[b\](.+)\[\/b\]`isU',
                '`\[barre\](.+)\[/barre\]`isU',
                '`\[lien\](.+)\[/lien\]`isU',
                '`\[lien url=&quot;(.+)&quot;\](.+)\[/lien\]`isU',
                '`\[image\](.+)\[/image\]`isU',
                '`\[citation\](.+)\[/citation\]`isU',
                '`\[citation nom=&quot;(.+)&quot;\](.+)\[/citation\]`isU',
                '`\[citation lien=&quot;(.+)&quot;\](.+)\[/citation\]`isU',
                '`\[taille valeur=&quot;(.+)&quot;\](.+)\[/taille\]`isU'
        );  
       
        $html = array(  
                '<em>$1</em>',  
                '<strong>$1</strong>',
                '<del>$1</del>',
                '<a href="$1">$1</a>',
                '<a href="$1">$2</a>',
                '<img src="$1" alt="Image utilisateur" />',
                '<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                '<span class="$1">$2</span>'
        );
       
        $contenu = htmlspecialchars($contenu);
        $contenu = preg_replace($zcode, $html, $contenu);
        $article = preg_replace($zcode, $html, $article);
        // parsage des smilies
        $smiliesName = array(':sourire:',':malheureu:',':moustache:',':lunette:',':lunette2:',':hum:',':aventure:');
        $smiliesUrl  = array('sourire.gif', 'malheureu.gif', 'souriremoustache.gif', 'sourirelunette.gif', 'sourirelunette2.gif', 'hum.gif','aventurier.gif');
        $smiliesPath = "http://www.bricktown.1s.fr/admin/textarea/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $contenu AND $article = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $contenu);
        }
       
       
        // Retours à la ligne
        $contenu AND $article = preg_replace('`\n`isU', '<br />', $contenu);
       
        return $contenu AND $article;

}

if (isset($_POST["string"])) {
        $content = $_POST["string"];
       
        if (get_magic_quotes_gpc()) {
                $content = stripslashes($content);
        }

        echo parseZCode($content); // Ecriture du contenu parsé.
}


?>


 

Cette fonction est donc utilisé sur index.php
Et sur show.php je l'ai appelé comme ça :

echo parseZCode($article) Si j'ai inséré le fichier de la fonction à l'aide de "include" plus rien ne s'affiche sur ma page. (l'include est tout en haut de ma page).
Si je n'ai pas inséré le fichier de la fonction tout mon site s'affiche sauf le bloc du corps et le pied de page.

Comment remédier à ces problèmes

momolamasse
18/06/2011 à 14:21:40
momolamasse
Membre
Problème résolus

J'ai trouvé le problème, je n'avais pas bien tout compris au fonctions. Je vous explique comment j'y ai remédier.
Ici j'ai laissé le code tel qu'il était avant :
index.php

<?php

    include_once("admin/view.php");
   

// On enleve les eventuels antislash PUIS on cree les entrees en HTML (<br />)
$contenu = stripslashes($donnees['contenu']);
    echo parseZCode($contenu);
    ?>
 
Ici j'ai laissé le code tel quel :

J'ai déplacé la variable d'appel de la fonction pour une question d'ordre.
show?id=(id de l'article)

<?php include_once("../admin/view.php");
$article = parseZCode($article);
?>
 

C'est ici que j'ai changé quelques trucs :
view.php

<?php

function parseZCode($texte_courant) {
        // Parsage des balises
        $zcode = array(  
                '`\[italique\](.+)\[\/italique\]`isU',  
                '`\[b\](.+)\[\/b\]`isU',
                '`\[barre\](.+)\[/barre\]`isU',
                '`\[lien\](.+)\[/lien\]`isU',
                '`\[lien url=&quot;(.+)&quot;\](.+)\[/lien\]`isU',
                '`\[image\](.+)\[/image\]`isU',
                '`\[citation\](.+)\[/citation\]`isU',
                '`\[citation nom=&quot;(.+)&quot;\](.+)\[/citation\]`isU',
                '`\[citation lien=&quot;(.+)&quot;\](.+)\[/citation\]`isU',
                '`\[taille valeur=&quot;(.+)&quot;\](.+)\[/taille\]`isU'
        );  
       
        $html = array(  
                '<em>$1</em>',  
                '<strong>$1</strong>',
                '<del>$1</del>',
                '<a href="$1">$1</a>',
                '<a href="$1">$2</a>',
                '<img src="$1" alt="Image utilisateur" />',
                '<br /><span class="citation">Citation</span><div class="citation2">$1</div>',
                '<br /><span class="citation">Citation : $1</span><div class="citation2">$2</div>',
                '<br /><span class="citation"><a href="$1">Citation</a></span><div class="citation2">$2</div>',
                '<span class="$1">$2</span>'
        );
       
        $texte_courant = htmlspecialchars($texte_courant);
        $texte_courant = preg_replace($zcode, $html, $texte_courant);
        $texte_courant = preg_replace($zcode, $html, $texte_courant);

       
        // parsage des smilies
        $smiliesName = array(':sourire:',':malheureu:',':moustache:',':lunette:',':lunette2:',':hum:',':aventure:');
        $smiliesUrl  = array('sourire.gif', 'malheureu.gif', 'souriremoustache.gif', 'sourirelunette.gif', 'sourirelunette2.gif', 'hum.gif','aventurier.gif');
        $smiliesPath = "http://www.bricktown.1s.fr/admin/textarea/";
       
        for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
                $texte_courant = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $texte_courant);
        }
       
       
        // Retours à la ligne
        $texte_courant = preg_replace('`\n`isU', '<br />', $texte_courant);
       
        return $texte_courant;
        }

if (isset($_POST["string"])) {
        $content = $_POST["string"];
       
        if (get_magic_quotes_gpc()) {
                $content = stripslashes($content);
        }

        echo parseZCode($content); // Ecriture du contenu parsé.
}


?>
 


Je ne pensais pas qu'il fallait faire appel à une fonction provisoire, c'était la mon problème.
J'ai donc appelé cette fonction $texte_courant, j'ai fait appel à la fonction grâce à un include_once et ensuite remplacé la variable $texte_courant par $article pour la page d'article ou $contenu pour la page des news.

Pages: 1