[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проясните плиз file_get_contents("..");
shivaprem
Дорогие, Друзья!

У меня есть главная страница в которой есть строки

<?php
$template=file_get_contents("SHABLON.php") or die("Не могу загрузить шаблон!");
if(empty($_GET['page']))
{
$page=1;
}
else
{
$page=(int)$_GET['page'];
}
switch($page)
{

case 1:
$content=file_get_contents("SendMessage.php");
break;


case 2:

$content=file_get_contents("pages/WhySend.php");
break;

case 3:
$content=file_get_contents("pages/SuccessStories.php");
break;



Т.ю. есть страница Index, в которой в зависимости от параметра GET,
Отражается та или иная страница.
$content=file_get_contents("SendMessage.php")

Все хорошо, пока в странице только HTML

Но когда в странице появляется PHP, присоеденямой через $content=file_get_contents("..»)ж
Серевер читает это как простой текст,

И скрипт не работает

Прошу помощи!

И заранее спасибо!




Спустя 15 минут, 4 секунды (30.05.2010 - 17:20) phz написал(а):
Измените file_get_contents на include http://php.net/manual/en/function.include.php

Спустя 35 минут, 47 секунд (30.05.2010 - 17:56) shivaprem написал(а):
Проясни плиз,
я смотрел манул, но не понял

у меня есть
$content=file_get_contents("SendMessage.php");


По идее его надо заменить на
$content=include("SendMessage.php");



Так как мне нужна переменная $content
в конце скрипта


	$template=str_replace("{content}",$content,$template);
echo $template;


чего-то я неправильно понял,
не работает.
результат тот-же

Прясни Плиз.

И спасибо!

Спустя 8 минут, 59 секунд (30.05.2010 - 18:05) vasa_c написал(а):
Мудрость веков описана в пыльном мануале на www.php.net

Первый вопрос: вам нужно получить содержимое файла или результат выполнения сценария из этого файла?

Спустя 13 минут, 18 секунд (30.05.2010 - 18:19) shivaprem написал(а):

мне нужно чтобы все содержимое файла,
сохранялось в переменной $content,

т.к. в конце страницы index есть
Код:
$template=str_replace("{content}",$content,$template); 
echo $template;






Мне надо чтобы сохраняедось все содержимое файла, которое является готовой страницы.

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

В файле есть содержание HTML, и скрипты для этих форм.

В пыльном мануале на www.php.net.

Есть только исполнение функций,
А как впихать все содержание я не нашел.

Возможно, что пропустил,
Но не нашел.

Спасибо!

Спустя 4 минуты, 45 секунд (30.05.2010 - 18:23) Bezdna написал(а):

case 3:
include 'pages/SuccessStories.php';
break;

echo $template;


Спустя 6 минут, 35 секунд (30.05.2010 - 18:30) vasa_c написал(а):
Вы содержимое файла и получаете. Как простой текст, потому что содержимое файла, это простой текст.

Так вам надо выполнять код в файле или нет?

Спустя 4 минуты, 35 секунд (30.05.2010 - 18:34) Rand написал(а):
Читай про буферизацию вывода. Принцип таков:
$template = file_get_contents('SHABLON.php') or die("Не могу загрузить шаблон!");
ob_start();
include("SendMessage.php");
$content = str_replace('{content}', ob_get_contents(), $template);
ob_end_clean();
echo $content;

Спустя 3 минуты, 21 секунда (30.05.2010 - 18:38) vasa_c написал(а):
Rand, а вот сейчас и SHABLON.PHP появится PHP-код, что делать?

Спустя 10 минут, 56 секунд (30.05.2010 - 18:49) Rand написал(а):
в шаблоне по определению не должно быть никакого php кода

Спустя 1 час, 25 минут, 13 секунд (30.05.2010 - 20:14) vasa_c написал(а):
Rand, приведите определение

Спустя 40 минут, 34 секунды (30.05.2010 - 20:55) Rand написал(а):
Целью шаблонов является разделение бизнес-логики от логики представления. Если в шаблоне написать php-код (бизнес-логика), то смысл его использования сразу теряется. А если в шаблоне будет чистый html, то я смогу использовать его, даже если мне придется поменять язык программирования. К тому же вы что, думаете все дизайнеры/верстальщики знакомы с php? Естественно нет. Шаблоны и создаются для того, чтобы каждый занимался своей работой, и верстальщик не бегал к программисту с мольбами о помощи: "Вася! Я тут удалил что-то, и теперь ничего не показывается! Что, делать? *паника*".

Дабы избежать ненужных постов, для особо умных напишу: расценивайте этот и мой предыдущий пост, как "Я считаю, что шаблон не должен содержать php-код, по скольку это противоречит моим представлениям о термине 'Шаблон'".

Автор спрашивал про файлы, загружаемые в зависимости от переменной $_GET['page'], но специально для vasya_c, модифицирую код, чтобы в файле SHABLON.php можно было использовать php:
ob_start();
include("SendMessage.php");
$content = ob_get_contents();
ob_end_clean();
include("SHABLON.php"); /*где внутри вместо {content} стоит <?echo $content;?>*/

Спустя 45 минут, 49 секунд (30.05.2010 - 21:40) ZSH написал(а):
функция eval может помочь, но это оооооооооочень плохой способ.

Спустя 38 минут, 30 секунд (30.05.2010 - 22:19) phz написал(а):
Чуть флуда... Не кому не в обиду, просто только-что читал и как раз в тему

Комментарий к примеру из lurkmore: Если вы когда-нибудь где-нибудь увидите такой код — смело карайте анально автора потому что весь html-код можно спокойно вынести за php-тег если вы когда нибудь увидите html-код, вынесенный за php-тег в файле .php, анально карайте автора, потому что весь html-код можно и нужно выносить в отдельные файлы-шаблоны[2]. А после анальной кары лишите его доступа к клавиатуре из-за eval-гета. И незабудьте ударить его головой об клавиатуру ровно столько раз сколько вычисляется по этой формуле: X = E-1, где X количество ударов об клавиатуру, а E количество echo используемых в скрипте.

Спустя 27 минут, 37 секунд (30.05.2010 - 22:46) vasa_c написал(а):
Rand, а когда автору ещё чего-нибудь будет нужно, ещё подкорректируете код и дадите ему список новых непонятных значков, которые магическим образом у него заработают?

Или дадите автору подумать немного и попробовать хотя бы сформулировать что на самом деле нужно? Пусть хотя бы определиться, что такое файл, а что такое результат выполнения и что ему нужно.

Спустя 9 минут, 56 секунд (30.05.2010 - 22:56) shivaprem написал(а):
Rand!!!!!

вот это рабоатет

ob_start();
include("SendMessage.php");
$content = ob_get_contents();
ob_end_clean();
include("SHABLON.php");


Спасибо и низкий поклон!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.