Вопрос

page.html

<body>
   <h1>{{HEADING1}}</h1>  {{CONTENT1}}
   <h2>{{NEWSLETTER}}</h2>
   <h1>{{VAR1}}</h1>  {{VAR2}}
</body>

page.php

$HEADING    = 'Heading';
$CONTENT    = '
              <div align="center">
              -- Content goes here --
              </div>
              ';
$NEWSLETTER = 'newsletter content';
$VAR1       = 'Another Sub Heading';
$VAR2       = 'content';

$File       = file('page.html');
print $File;

1> While the url http://example.com/page.php executes, All the {{VARIABLE}} should replace by the value in $VARIABLE.

2> Also I want to call the PHP loop inside HTML
Something Like

BEGIN WHILE LOOP
CONTENTS
END

What are the best methods (or Regular Expression) to implement these?

Это было полезно?

Решение

The below can be used to change the variables $HEADING to {{HEADING}}

   $File          = file('file.html');
   $FContent      = join("", $File);
   $FileContent   = preg_replace("/{{(.*?)}}/e","@$$1", $FContent);

   print $FileContent;

Другие советы

what about using a template engine? See Twig

you will have to set the variables in your PHP files like this

return array("variable" => "variable_content");

and then use it in the HTML files this way:

Content: {{variable}}

in the HTML you can also loop with Twig syntax

{% for var in variables %}
   Content: {{var}}
{% endfor %}

You can use str_replace here:

$File = str_replace("{{HEADING}}",$HEADING,$File);
$File = str_replace("{{CONTENT}}",$CONTENT,$File);
print $File;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top