2014-09-01 2 views
0

Я бы создал систему, которая заменяет теги в коде HTML-кода через PHP, я могу сделать это через функцию preg_replace, но как я могу создать цикл?Loop файлы HTML-шаблона

Например:

Часть HTML-файл:

<div class="users"> 
{users} 
    <div class="single-user"> 
     {lastname}, {firstname} 
    </div> 
{endusers} 
</div> 

ли должно быть так:

<div class="users"> 
    <div class="single-user"> 
     Person1, Firstname1 
    </div> 
    <div class="single-user"> 
     Person2, Firstname2 
    </div> 
    <div class="single-user"> 
     Person3, Firstname3 
    </div> 
</div> 

Спасибо за чтение.

+1

Вы должны были бы написать правильный анализатор для языка шаблонов. – Quentin

ответ

-1

Предполагая, что информация в настоящее время извлекается из базы данных, вы можете использовать что-то вроде этого:

$result = mysql_query("SELECT * FROM table1", $link); 

while ($row = mysql_fetch_array($result, MYSQL_NUM)) { 
$display = $upperTemplate . $row[0] . $middleTemplate . $row[1] . $lowerTemplate; 
} 

Это также предполагает, что шаблон состоит из трех частей, но если у вас уже есть код для отображения записи, вы можете просто поместить это в содержимое цикла.

Если информация хранится в многомерном массиве, вы можете использовать для цикла FOR.

for($i = 0; $i < sizeof($array); $i++) { 
$display = $upperTemplate . $row[0] . $middleTemplate . $row[1] . $lowerTemplate; 
} 

Надеюсь, это поможет.

Edit: Вот версия PDO:

$query = "SELECT * FROM table1"; 
$result = $db->prepare($query); 
$result->execute(); 

while ($row = $result->fetch())) { 
$display = $upperTemplate . $row[0] . $middleTemplate . $row[1] . $lowerTemplate; 
} 
+1

Вы используете [** устаревший ** API баз данных] (http://stackoverflow.com/q/12859942/19068) и должны использовать [современную замену] (http://php.net/manual/en/ mysqlinfo.api.choosing.php). – Quentin

+0

Я бы создал парсер шаблонов, данные из PDO базы данных, но я знаю, как это работает. Я бы сделал это через теги {users}/{endusers}. – Robiin

+0

Я обновил его и включил быструю версию PDO. Не проверял, просто бросил его вместе, но я считаю, что он будет делать то, что вы хотите. –