2011-04-03 3 views
1

Eh bien désolé avec la même question encore, bien j'ai vu dans phpbb il existe des modèles au format html et ils ont des balises html aussi mais entre il y a des variables et des valeurs de tableau php et dans le fichier index principal ils déclaré les variables et à la fin le inclus le modèle et voilà! la page d'index est affiché sans erreur maintenant je veux la même comme faire une variable ou un tableau et ajouter ces noms dans le fichier html comme ceci:PHP variables en HTML

index.php:

$var1 = "text"; 

include "file.html"; 

file.html:

this is {var1} 

et la sortie devrait venir "c'est du texte". quelqu'un peut-il me dire comment faire cela?

EDIT: Je ne veux pas de codes php comme echo et tout juste {} et je reçois la sortie sous "This is {var1}".

+0

Quelle est la sortie que vous obtenez? – EmCo

Répondre

1

J'utilise quelque chose comme ceci:

$content = file_get_contents($content_file); 
       $pattern ='/<\$([a-zA-Z]+[a-zA-Z0-9_]*)>/'; 
       preg_match_all($pattern, $content, $matches); 

       foreach($matches[1] as $match){ 
        if(isset($$match)){ 
         $content = preg_replace ('/<\$'.$match.'>/', $$match , $content, 1); 
        }

Cela vous permettra d'utiliser des variables comme celui-ci <$varname>

Si vous voulez utiliser la syntaxe {varname} simplement réécrire le motif. Pour le fichier $ content_file, assurez-vous d'inclure le chemin d'accès au fichier.

Modifier: Oups ... a dû corriger mes signes inférieur à/plus grand que ...

2

C'est parce qu'il utilise le fichier html comme modèle. J'analyse ensuite et remplace les variables avec des données réelles.

+0

Comment je fais ça? tout ce que vous pouvez spécifier afin que je puisse google sur ?? –

2

vous n'avez pas besoin de modèles.

this is <?php echo $var1?>

ou si des balises courtes sont activées

this is <?=$var1?>

0

Vous ne pouvez pas simplement inclure le fichier, vous devez lire le fichier dans la variable et remplacer {var} pour $ var. Si vous disposez déjà d'un tableau de remplacements disponibles, utilisez str_replace pour effectuer le travail. Mais c'est une mauvaise pratique, utilisez plutôt des balises courtes ou echo.