main.tpl
<html>
<head>
<title>{title}</title>
</head>
<body>
<div>{site_slogan}</div>
<div>{ozzy}</div>
</body>
</html>
Нужно произвести выборку в массив всех полей вида {название поля} для последующей замены. Нужно правильно записать регулярное выражение для выборки. Попытался так:
<?php
$mytpl = file_get_contents('main.tpl');
$raz[0] = "{";
$raz[1] = "}";
preg_match_all ("/\\".$raz[0]."[^\\".$raz[1]."]+\\".$raz[1]."/s", $mytpl, $matches);
var_dump($matches);
?>
На выходе выдает
array(1) { [0]=> array(3) { [0]=> string(7) "{title}" [1]=> string(13) "{site_slogan}" [2]=> string(6) "{ozzy}" } }
Как видите, много лишнего. Помогите!!!
Спустя 8 минут, 37 секунд (4.09.2010 - 23:03) Winston написал(а):
Цитата (Renton @ 4.09.2010 - 21:54) |
Как видите, много лишнего. Помогите!!! |
А отформатировать результат слабо ?
array(1)
{
[0]=> array(3)
{
[0]=> string(7) "{title}"
[1]=> string(13) "{site_slogan}"
[2]=> string(6) "{ozzy}"
}
}
Просто эта функция возвращает многомерный массив. Покажи что здесь лишнее ?
Спустя 3 минуты, 13 секунд (4.09.2010 - 23:06) Renton написал(а):
Цитата (PHPprogramer @ 4.09.2010 - 20:03) | ||
А отформатировать результат слабо ? array(1) Просто эта функция возвращает многомерный массив. Покажи что здесь лишнее ? |
Отформатировать слабо. Мне нужно чтоб на выходе было только
{title}{site_slogan}{ozzy}
Многомерный массив вроде как и не к чему.
Спустя 4 минуты, 46 секунд (4.09.2010 - 23:11) Winston написал(а):
Сделай так
$matches[0][0].$matches[0][1].$matches[0][2]
Эта функция возвращает только многомерные массивы.
$matches[0][0].$matches[0][1].$matches[0][2]
Эта функция возвращает только многомерные массивы.
Спустя 2 минуты, 20 секунд (4.09.2010 - 23:13) DedMorozzz написал(а):
Используй прег_реплейс. И выгребаемые данныезаписывай в строку.