Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.09.2011, 13:16   #1
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
По умолчанию Парсинг

Я знаю, что вопрос для знающих выглядит наивно. Но для меня как новичка очень важен.
Выразим это так:
PHP код:
$contents="content";
$this->html=file_get_contents($tplname);//содержить $contents
echo $this->html
Как сделать чтобы вместо $contents отэхилось contents?
tigrend вне форума Ответить с цитированием
Старый 28.09.2011, 23:20   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Я что-то не понимаю, что вы хотите - если нужно вывести содержимое переменной, ну и выводите с помощью echo
motorway вне форума Ответить с цитированием
Старый 28.09.2011, 23:55   #3
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

я так подозреваю, что это не весь код, так как непонятно на каком основании
PHP код:
$this->html=file_get_contents($tplname); 
содержит $contents
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Старый 29.09.2011, 05:32   #4
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
По умолчанию

Ну ладно. Допустим я неясно выразился.
Есть файл. Например Layout.tpl
В нем например такой хтмл:
Код:
<html>
<body>
$contents //возможно собака зарыта в этом месте.
</body>
</html>
Он грузится. Подчёркиваю этот факт. Он отлично эхится. Но в нём всегда эхится $contents. А мне нужно её содержимое.

Давайте без предложений типа echo $contents. Потому что в этом случае придется: 1. Грузить первую половинку файла до контента. 2. Эхить контент. 3. Грузить третью половинку контента.
[4...При наличии разбитого контента повторять итерации 100 раз.]

А ещё давайте не будем ковыряться во всём коде, который предшествует загрузке темплейтов. Потому что, это вполне себе рабочий mvc код. Там и модельки и контроллеры. Суть не в них, а собственно в отображении.
tigrend вне форума Ответить с цитированием
Старый 29.09.2011, 09:45   #5
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

.tpl - это шаблон, интерпритатор php не распознает его по умолчанию и при инклуде он воспринимается как обычный текст, независимо от того, что ты туда налепил.
потому, варианты:
1.использовать шаблонизатор (smarty например) и прописывать переменные и куски php-кода со свойственным ему синтаксисом, а не просто $contents.
2.делать как ты описал - грузить первую половинку, эхить контент, грузить вторую половинку...
3.менять принцип построения страницы в корне.
Все генитальное просто.

Последний раз редактировалось kirosin; 29.09.2011 в 09:48.
kirosin вне форума Ответить с цитированием
Старый 29.09.2011, 10:36   #6
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
Вопрос

Цитата:
Сообщение от kirosin Посмотреть сообщение
.tpl - это шаблон, интерпритатор php не распознает его по умолчанию и при инклуде он воспринимается как обычный текст, независимо от того, что ты туда налепил.
потому, варианты:
1.использовать шаблонизатор (smarty например) и прописывать переменные и куски php-кода со свойственным ему синтаксисом, а не просто $contents.
2.делать как ты описал - грузить первую половинку, эхить контент, грузить вторую половинку...
3.менять принцип построения страницы в корне.
Насчёт 0. Поменять расширение файла не проблема. Было бы сказано как сделать правильно. И это не инклуд. Это считывание файла в строковую переменную. Которая потом эхится. Или я что-то не понимаю?
Так давайте без 1 и без 2.
А что насчёт 3? Как лучше сделать?
tigrend вне форума Ответить с цитированием
Старый 29.09.2011, 15:32   #7
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Может, вам такое подойдет:
Код:
$text=str_replace('$contents //возможно собака зарыта в этом месте.',$new,$alltext);
Тут соответственно текст, который нужно вставить, и весь текст.
motorway вне форума Ответить с цитированием
Старый 30.09.2011, 05:08   #8
tigrend
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 31
По умолчанию

motorway: Фокус не удался. Ещё версии?
PS я на самом деле думаю, что здесь дело в различии строк '' и "", но я в этом не уверен.
tigrend вне форума Ответить с цитированием
Старый 02.10.2011, 00:09   #9
kirosin
Форумчанин
 
Аватар для kirosin
 
Регистрация: 15.01.2010
Сообщений: 209
По умолчанию

насчет 0. переименовать файл в Layout.php и выводить содержимое переменной так:
PHP код:
<html>
<body>
<?
echo $contents//откапываем твою собаку.
?>
</body>
</html>
для проверки можно добавить перед этим кодом:
PHP код:
<?
$contents
="тут будет чото...";
?>
и вызвать этот файл напрямую.

насчет 3. не знаю как будет лучше... это зависит от конкретных целей и задач - нужно понимать что ты хочешь получить в итоге.
Все генитальное просто.
kirosin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
парсинг Pein95 C# (си шарп) 3 16.09.2011 01:24
Парсинг DJ_LINZA Работа с сетью в Delphi 6 31.01.2011 10:15
Парсинг. igor90 Microsoft Office Excel 1 03.11.2010 02:41