2009-12-13 6 views

Répondre

1

Je pense que vous devriez utiliser eval() pour faire une telle chose. Donc oui, possible mais pas recommandé.

+0

Puis-je demander ce que les problèmes de sécurité avec ce serait? (Je suis la seule personne qui peut ajouter du contenu à la base de données et je le fais via phpmyadmin) –

+0

Je pense que vous auriez plus de problèmes de performance que de sécurité. eval() est assez cher car PHP doit essentiellement générer un autre interpréteur pour chaque appel de eval(). –

+0

Ah merci :) –

1

Comme les deux suggestions ont indiqué, en utilisant eval() n'est pas recommandé et pose un grave problème de sécurité.

Votre meilleur pari serait de créer un système de base de gabarit. Vous pourriez avoir un ensemble prédéterminé de blocs de code PHP sur le frontend qui sont déclenchés par certaines valeurs clés sur le backend, c'est-à-dire que {show_categories} pourrait être une balise qui, lorsqu'elle est analysée, est remplacée par toutes les catégories.

Pour implémenter une telle fonctionnalité, vous devez rechercher les valeurs de clé de modèle particulières. Si de telles valeurs de clé sont trouvées, exécutez le code associé avec cette valeur de clé et remplacez la clé par le code.

Un exemple très simple de trouver et de remplacer une clé de modèle:

// check if the show_categories key is found 
if (strpos($body, '{show_categories}') !== false) { 
    // generate the show categories output from a PHP function 
    $categories = getCategoriesOutput(); 
    // replace key with content 
    str_replace('{show_categories}', $categories, $body); 
} 
+0

+1: Smarty ou Phable serait une option –

Questions connexes