$content = '<div class="title">%TITLE%</div>
<div class="block">
%TEXT%
</div>';
$find = array('%TITLE%','%TEXT%');
$replace = array($row['TITLE'], $row['TEXT']);
$subject = '<div class="title">%TITLE%</div><div class="block">%TEXT%</div>';
$pattern = '/%(.*?)%/';
preg_match($pattern, $subject, $matches);
print_r($matches);
/%([\w]*?)%/
<div class="title">%TITLE%</div><div class="block">%TEXT%</div>
<div class="title">Привет!</div><div class="block">Это текст</div>
$row = array('TITLE' => 'Привет', 'TEXT' => 'Это текст');
preg_replace('/%(.*?)%/', $row['ТО ЧТО НАШЛОСЬ ( допустим TITLE ) (надо ещё как-то вырезать %) '], $object);
function templater ($parts, $data) {
list ($tpl, $keys, $vals) = array("", [], []);
foreach ($parts as $p) $tpl .= file_get_contents($p);
foreach ($data as $k => $v) {
array_push ($keys, "/{".$k."}/");
array_push ($vals, $v);
}
return preg_replace($keys, $vals, $tpl);
}
// а вот использование.
// первый аргумент- массив частей, которые нужно объединить.
// второй- массив идентификаторов и данных, которые нужно заменить.
echo templater ([
"header.tpl",
"content.tpl",
"footer.tpl"
], [
"title" => "Page",
"content" => "hello_world",
"phone" => "133654"
]);
<div>{content}</div>
<?php
$object = '<div class="title">%TITLE%</div><div class="block">%TEXT%</div>';
$row = array('TITLE' => 'Привет', 'TEXT' => 'Это текст');
foreach ($object as $k => $v) { // --- Видимо тут что-то не так.
array_push ($find, "/%".$k."%/");
array_push ($replace, $v);
}
exit(preg_replace($find, $row[$replace], $object));
?>
<?php
$subject = '<div class="title">%TITLE%</div><div class="block">%TEXT%</div>';
$pattern = '/%([\w]*?)%/';
$tpl = array('TITLE' => 'Мой заголовок','TEXT' => 'Какой-то контент');
$find = array();
$replace = array();
preg_match($pattern, $subject, $matches);
// Тут цикл начинается
array_push ($find, $matches[0]); // На первом месте выводит %TITLE%
array_push ($replace, $matches[1]); // На втором уже выводит TITLE
//END
?>
<?php
$subject = '<div class="title">%TITLE%</div><div class="block">%TEXT%</div>';
preg_match('/%([\w]*?)%/', $subject, $matches);
var_dump($matches);
?>
array(2) { [0]=> string(7) "%TITLE%" [1]=> string(5) "TITLE" }
$str = '<div class="title">%TITLE%</div><div class="block">%TEXT%</div>';
$data = array(
'TITLE' => 'My title',
'TEXT' => 'My text'
);
$html = templater($str, $data);
echo $html;
function templater ($str, $data) {
$keys = array();
$vals = array();
foreach ($data as $k => $v) {
array_push ($keys, "/%".$k."%/");
array_push ($vals, $v);
}
return preg_replace($keys, $vals, $str);
}
array(10) { ["id"]=> string(1) "1" [0]=> string(1) "1" ["title"]=> string(32) "Добро пожаловать!" [1]=> string(32) "Добро пожаловать!" ["short"]=> string(89) "Совсем скоро будут доработаны все функции сайта." [2]=> string(89) "Совсем скоро будут доработаны все функции сайта." ["full"]=> string(89) "Совсем скоро будут доработаны все функции сайта." [3]=> string(89) "Совсем скоро будут доработаны все функции сайта." ["time"]=> string(1) "0" [4]=> string(1) "0" }
$data = array("title" => "Добро пожаловать!")
<div>%title%</div>
<div>Добро пожаловать!</div>
<?php
$subject = '<div class="title">%TITLE%</div><div class="block">%TEXT%</div>';
preg_match_all('/%([\w]*?)%/', $subject, $matches);
$find = array();
$replace = array();
foreach ($matches[0] as $f) array_push ($find, $f);
foreach ($matches[1] as $r) array_push ($replace, $r);
var_dump ($find);
?>
function get($table, $params, $template) {
global $localization;
$title = $localization[strtoupper($table)];
$rows = sql('SELECT * FROM `'.$table.'` ORDER BY `id` DESC', $params);
preg_match_all('/{([\w]*?)}/', $template, $matches);
foreach ($rows as $row) {
$find = array();
$replace = array();
foreach ($matches[0] as $f) array_push ($find, $f);
foreach ($matches[1] as $r) array_push ($replace, $row[strtolower($r)]);
$content .= str_replace($find, $replace, $template);
}
if (!$content) $content = str_replace("{ALERT}", $localization[strtoupper($table.'_NOT_FOUND')], getTemplate(1));
return array('TITLE' => $title, 'CONTENT' => $content);
}
if (!isset($_GET['post'])) {
$publications = get('Publications', false, getTemplate(7));
$title = $publications['TITLE'];
$content = $publications['CONTENT'];
} else if (is_numeric($_GET['post'])) {
.....