2014-09-02 2 views
0

У меня есть проблема и вам нужна ваша помощь. я хочу использовать свой собственный тег в моем коде сценария, как [тег] и анализировать весь HTML код, то парсер коду и заменить эти теги с помощью PHP коды или моего выходного мир и эхо моего выходапользовательский тег в HTML и парсере с php

простого кода:

<!doctype html> 
<html> 
<head> 
<meta charset="utf-8"> 
<title>[MY_PAGE_TITLE]</title> 
</head> 
    <header></header> 
     <div class="left">[MY_WEBSITE_LEFT_SIDEBAR_INFORMATION]</div> 
      <article>[MY_WEBSITE_ARTICLE]</article> 
     <div class="right">[MY_WEBSITE_RIGHT_SIDEBAR_INFORMATION]</div> 
    <footer></footer> 
<body> 
</body> 
</html> 

мой первый тег [MY_PAGE_TITLE] должен быть заменен одним миром как «мой сайт» Я хочу использовать это для своего языкового сайта. я получаю это слово из массива, как:

mylangarray [ 
    MY_PAGE_TITLE="my website" 
] 

но для моих любой другой тег я хочу загрузить некоторый модуль влево или вправо боковой панель или загрузить какую-то статью из моей БД

Как я могу это сделать?

+0

Это не проблема регулярных выражений. Почему бы просто не использовать стандартную замену строк, поддерживаемую php? Кроме того, имейте в виду, что добавление 'regex' и' html' вместе (особенно когда речь заходит о разборе) приглашает _lot_ downvoting. Поскольку ваш вопрос не требует регулярного выражения, насколько я могу понять, я бы предложил удалить тег регулярного выражения, чтобы вы не забыли себя забвением слишком быстро, чтобы судить. – mechalynx

+0

@Morteza Вы должны взглянуть на исходный код [** Smarty **] (http://www.smarty.net/), который представляет собой систему шаблонов, сделанных на PHP, что даст вам массу идей по как сделать то, что вы описали выше и более. – Prix

+0

Спасибо, ребята. ivy_lynx, я удалил тег regex из моего вопроса. и Prix я посмотрел, но это не похоже на мой вопрос. – Morteza

ответ

1

Я решил свою проблему. Если у вас есть эта проблема, вы можете использовать этот метод.

step1: вы определяете свой пользовательский тег в главном файле представления, а затем на стороне сервера с PHP ob_start функции выходного буфера запуска затем требуют или require_once или включать или include_once файл. теперь с определением переменной и ob_get_contents функция в PHP, сохраните весь код файла в переменной. например:

$html = ob_get_contents(); 

Теперь у вас есть все файлы вида в переменной.

вы можете очистить свой буфер ob_end_clean функция.

пример:

ob_start(); 
require_once 'mainViewFile.php'; 
$html = ob_get_contents(); 
ob_end_clean(); 

step2: вы можете использовать str_replace Funcation для замены определенного пользовательского тега с новыми данными.

$leftSideBarInformation = 'We stored left bar information in this variable!'; 
$html = str_replace('[MY_WEBSITE_LEFT_SIDEBAR_INFORMATION]', $leftSideBarInformation, $html); 

Если у вас есть массив пользовательских тегов, вы можете использовать цикл foreach.