$text = implode('', file ('test.php'));
, но тгда получаю исходный кд страицы, а мне необходимо уже в виде вывода пользователю.

я подразумеваю file_get_contents
Спустя 23 минуты, 17 секунд (28.10.2010 - 20:32) T1grOK написал(а):
Правильно подразумеваете.
Спустя 29 минут, 40 секунд (28.10.2010 - 21:02) Игорь_Vasinsky написал(а):
не... в результате я вижу свои пхп переменные, как буд тобы я смнил расширение с пхп н хтмл...
нужен результат - какбудто бы я сохранил страницу из браузера... вот
нужен результат - какбудто бы я сохранил страницу из браузера... вот
Спустя 51 секунда (28.10.2010 - 21:03) vital написал(а):
CURL или Сокеты.
Спустя 1 минута, 11 секунд (28.10.2010 - 21:04) Игорь_Vasinsky написал(а):
оппа.... а по бодробней... раньше не сталкивлся
Спустя 3 минуты, 2 секунды (28.10.2010 - 21:07) vital написал(а):
По подробнее -это в гугл. ибо и перво и второе -очень обширные темы. Но суть в том, что посылается запрос, и получается ответ. Ответ - в виде хтмл офк. Примеров в сети масса.
Спустя 2 минуты, 18 секунд (28.10.2010 - 21:09) Игорь_Vasinsky написал(а):
неее эт не про это... яж хоче взять страницу с пхп кодом и средствами пхп сохранить её в виде уже вывода в хтмл
хотя ссори... нарыл вот это:
Пример 1. Использования модуля CURL для сохранения стартовой страницы example.com
<?php
$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
хотя ссори... нарыл вот это:
Пример 1. Использования модуля CURL для сохранения стартовой страницы example.com
<?php
$ch = curl_init("http://www.example.com/");
$fp = fopen("example_homepage.txt", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
Спустя 1 минута, 53 секунды (28.10.2010 - 21:11) vital написал(а):
Цитата |
какбудто бы я сохранил страницу из браузера... вот |
Это именно то. Вы бы хоть загуглили сначала.
Спустя 1 минута, 42 секунды (28.10.2010 - 21:13) vital написал(а):
Или еще, кстати. Если вариант такой
Т.е. если файлы на одном сервере - то лучше через буфер.
ob_start()
require(файл)
$text=ob_end_get_content() //ну или как там эту ф-ю. Не помню точно.
Т.е. если файлы на одном сервере - то лучше через буфер.
Спустя 22 секунды (28.10.2010 - 21:13) linker написал(а):
$Result = exec('/usr/bin/php /var/www/docs/index.php');
Спустя 1 минута, 2 секунды (28.10.2010 - 21:14) vital написал(а):
Екзес есть моветон. Может быть и запрещен кста.
Спустя 1 минута, 48 секунд (28.10.2010 - 21:16) Игорь_Vasinsky написал(а):
так же вот это
Установка
Для использования CURL необходимо также собрать PHP с опцией --with-curl[=DIR], где DIR - имя директории, содержащей поддиректории lib и include. Директория "include" должна содержать поддиректорию "curl" с файлами easy.h и curl.h. Директория "lib" должна содержать файл libcurl.a. Начиная с PHP 4.3.0 с помощью опции --with-curlwrappers можно сконфигурировать PHP для использования CURL при работе с удаленными файлами.
Замечание для пользователей Win32: Для работы с этим модулем в Windows необходимо скопировать файлы libeay32.dll и ssleay32.dll из директории DLL Win32 дистрибутива PHP в директорию SYSTEM (Нпример C:\WINNT\SYSTEM32 или C:\WINDOWS\SYSTEM)
но если я не контролирую сам сервер.... на локалхосте да а на реальной площадке же нет
что касается:
то тут я просто копирую удалённую страницу с исходным кодом
Установка
Для использования CURL необходимо также собрать PHP с опцией --with-curl[=DIR], где DIR - имя директории, содержащей поддиректории lib и include. Директория "include" должна содержать поддиректорию "curl" с файлами easy.h и curl.h. Директория "lib" должна содержать файл libcurl.a. Начиная с PHP 4.3.0 с помощью опции --with-curlwrappers можно сконфигурировать PHP для использования CURL при работе с удаленными файлами.
Замечание для пользователей Win32: Для работы с этим модулем в Windows необходимо скопировать файлы libeay32.dll и ssleay32.dll из директории DLL Win32 дистрибутива PHP в директорию SYSTEM (Нпример C:\WINNT\SYSTEM32 или C:\WINDOWS\SYSTEM)
но если я не контролирую сам сервер.... на локалхосте да а на реальной площадке же нет
что касается:
$Result = exec('/usr/bin/php /var/www/docs/index.php');
то тут я просто копирую удалённую страницу с исходным кодом
Спустя 2 минуты, 22 секунды (28.10.2010 - 21:19) vital написал(а):
Цитата |
на локалхосте да а на реальной площадке же нет |
Курл - это давно стандарт. Он есть везде, это раз. И второе - см.выше я написал вариант решения через сокеты и буфер. Какой выбрать вам - вопрос религии.
Спустя 33 секунды (28.10.2010 - 21:19) linker написал(а):
vital
Это не моветон, а видимо в данной постановке задачи является решением для ТС. Иначе
Это не моветон, а видимо в данной постановке задачи является решением для ТС. Иначе
$Result = file_get_contents('http://localhost/index.php');Или так тоже моветон?
Спустя 2 минуты, 23 секунды (28.10.2010 - 21:21) Игорь_Vasinsky написал(а):
я христианин,что сработает то и возьму. .
...а написал как еврей........
ща проверю....тайм аут...
...а написал как еврей........
ща проверю....тайм аут...
Спустя 1 минута, 41 секунда (28.10.2010 - 21:23) vital написал(а):
Так нет. Суть в том, что екзек может быть запрещен как таковой. Разве нет? Тем более, если туда еще файл динамически подставляется.. Фиг знает, что можно заставить выполниться.
Спустя 2 минуты, 51 секунда (28.10.2010 - 21:26) linker написал(а):
Так же как и curl, так же как и file, fopen(), file_get_contents() c помощью банального allow_url_fopen = Off. Все может быть.
Спустя 6 минут, 5 секунд (28.10.2010 - 21:32) Игорь_Vasinsky написал(а):
ob_start();
require(файл);
$text=ob_end_get_content();
срабатываткак include....
А курл.. к сажалению dewer это не знает.....
так... н давйт рассмотрим такой варинт... теперь цель пхп - а результат txt...
или это пости одно и тоже...
других вариантов нет?
Спустя 1 минута, 30 секунд (28.10.2010 - 21:34) Игорь_Vasinsky написал(а):
грёбнная клава........

Спустя 24 минуты, 57 секунд (28.10.2010 - 21:59) vital написал(а):
1. На денвер курл поставить элементарно.
2.
2.
Цитата |
срабатываткак include.... |
Не может быть. Сам сейчас использую такой метод в рабочем проекте. ВСе нормально работает.
Цитата |
теперь цель пхп - а результат txt... |
Ты так и не сказал. Тебе надо _содержимое_ скрипта получить. Или его _вывод_ т.е. результат работы?
В конце концов, можно просто eval() использовать, что, врочем, тоже не комильфо.
Спустя 1 минута, 27 секунд (28.10.2010 - 22:00) vital написал(а):
Цитата |
срабатываткак include.... |
Вернее, примерно так оно и срабатывает, но вывод скрипта остается в переменной.
Спустя 11 минут, 56 секунд (28.10.2010 - 22:12) linker написал(а):
ini_set('output_buffering', 'On');Тут лишь бы имена переменных и функций не пересекались.
ob_start();
require(файл);
$text = ob_get_clean();
Спустя 2 минуты, 41 секунда (28.10.2010 - 22:15) Игорь_Vasinsky написал(а):
Цитата |
Ты так и не сказал. Тебе надо _содержимое_ скрипта получить. Или его _вывод_ т.е. результат работы? |
--- вывод_ т.е. результат работы, скрипт то я вижу это мой файл.
цель такая:
1. Получаю данные
2. Пишу в MySQL
3. В шаблоне (создаю файл) делаю вывод этих данных, вытаскиваю те самые данные из базы
Вот, я желаю удалять баз псл испльзовани, но а данный момент, т.к. шаблон и есть пхп срипт - то базу я удлить не могу... вот мне и недо реализоват так чтобы после выводая поучал сатческую страничку - и удалял базуза е надобностью.
Спустя 5 минут, 21 секунда (28.10.2010 - 22:20) Игорь_Vasinsky написал(а):
ini_set('output_buffering', 'On');
ob_start();
require(файл);
$text = ob_get_clean();
вот то только смог сделат.... можно назвать шаблоном для создания хтмл...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1251" http-equiv=Content-Type></HEAD>
<BODY></BODY></HTML>
Спустя 2 минуты, 47 секунд (28.10.2010 - 22:23) Игорь_Vasinsky написал(а):
eval() вычисляет строку, заданную в code_str, как код PHP. Помимо всего прочего, это может оказаться полезным для хранения кода в текстовом поле БД для последующего исполнения.
опять же... мне нужен результат, сама страница с кодом лежит у еня.
опять же... мне нужен результат, сама страница с кодом лежит у еня.
Спустя 29 секунд (28.10.2010 - 22:23) twin написал(а):
Вот тут почитай про такой шаблон.
Спустя 4 минуты, 8 секунд (28.10.2010 - 22:27) vital написал(а):
Цитата |
опять же... мне нужен результат, сама страница с кодом лежит у еня. |
Вдумайся в то, что сам процитировал. eval() выполнит и вернет результат.
Спустя 17 минут, 41 секунда (28.10.2010 - 22:45) Игорь_Vasinsky написал(а):
Цитата |
Вдумайся в то, что сам процитировал |
это может оказаться полезным для хранения кода в текстовом поле
ща почитаю Большой барс...
Спустя 1 минута, 38 секунд (28.10.2010 - 22:47) Игорь_Vasinsky написал(а):
с TPL не хочу взаваться...2я неделя по 2 часа сна...не въеду я в эту тему...хотя п содержанию это о и есть...
мож ещё какие функции пхп припрятаны? на крайнию меру...
мож ещё какие функции пхп припрятаны? на крайнию меру...
Спустя 8 минут, 36 секунд (28.10.2010 - 22:55) vital написал(а):
Да при чем тут TPL? Это всего лишь пример. Eval выполнит любой пхп валидный код. т.е
eval('$n=5; ?><h1><?echo $n;?></h1>')=<h1>5</h1>
eval('$n=5; ?><h1><?echo $n;?></h1>')=<h1>5</h1>
Спустя 1 минута, 21 секунда (28.10.2010 - 22:57) vital написал(а):
То же самое сделает любой из вариантов, предложенных выше.
Спустя 7 минут, 14 секунд (28.10.2010 - 23:04) vital написал(а):
Живой пример на Yii фреймворке, но это не важно. В бд хранятся тексты статей, со всей хтмл разметкой, и в нек-х еще есть инклуды.
$command = Yii::app()->db->createCommand("
SELECT * FROM Articles WHERE title=:title AND (lang=:lng or lang='en') ORDER BY lang DESC LIMIT 0,1");
$command->bindParam(':title', $title);
$command->bindParam(':lng', $lng);
$content = $command->queryRow(); //в title текущая статья
if (!$content)
{
throw new CHttpException(404, 'Requested page "'.$title.'" does not exist');
}
$lng=$content['lang']; //ниже получается имя файла
$date=str_replace(array('-',':',' '), array('','',''), $content['changedate']);
$tmp = Yii::getPathOfAlias('webroot.uploads') . DIRECTORY_SEPARATOR . $title . $lng . $date;
if (!file_exists($tmp)) //Если он не сущевствует, он создается
file_put_contents($tmp,$content['text']);
if(is_array($data)) extract($data,EXTR_PREFIX_SAME,'data');
ob_start();
ob_implicit_flush(false);
require ($tmp); //и реквайрится
$content = ob_get_clean();
ob_end_clean();
//в переменной контент чистый хтмл с выполненным кодом.
Спустя 3 минуты, 50 секунд (28.10.2010 - 23:08) Игорь_Vasinsky написал(а):
а если я возьму через file_get_content - и всё это пучком через eval() пропущю, я буду доволен?
Спустя 1 минута, 38 секунд (28.10.2010 - 23:09) vital написал(а):
Только в начале удали <?php и в конце ?> иначе евал выдаст ошибку.
Спустя 5 минут, 43 секунды (28.10.2010 - 23:15) Игорь_Vasinsky написал(а):
т.е. я имею ввиду что мне необходимо чтобы сттическая страничка создаась физически в папке....
Спустя 6 минут, 40 секунд (28.10.2010 - 23:22) Игорь_Vasinsky написал(а):
нехера не понял
вот на моём примере:
есть сраница test.php
а чё дальше... как мне и этой пхп страницы сделать статическую test.html с помощью eval() или твоего кода я не хера не понял.
вот на моём примере:
есть сраница test.php
<?php
include("../config.php");
$text = "ВОт бли всё на пхп";
$b = 10;
$c = 33;
$a = $b + $c;
echo $a;
echo $text;
?>
а чё дальше... как мне и этой пхп страницы сделать статическую test.html с помощью eval() или твоего кода я не хера не понял.
Спустя 2 минуты, 42 секунды (28.10.2010 - 23:24) vital написал(а):
$text=file_get_contents()
preg_replace('<?php','',$text)
preg_replace('?>','',$text)
file_put_contents(file,eval($text));
preg_replace('<?php','',$text)
preg_replace('?>','',$text)
file_put_contents(file,eval($text));
Спустя 18 минут, 58 секунд (28.10.2010 - 23:43) twin написал(а):
А как с такими вставками быть?
<input value="<?php echo $var ?>" />
Спустя 9 минут, 50 секунд (28.10.2010 - 23:53) Игорь_Vasinsky написал(а):
бляяяяяя
но он же всё равно не формирует html content !!!!!!!!!!
я считал содержимо PHP -> записал в переменную - > создал файл test.html
и записал туда переменную, вот что он содержит:
все теже переменые.............
но он же всё равно не формирует html content !!!!!!!!!!
я считал содержимо PHP -> записал в переменную - > создал файл test.html
и записал туда переменную, вот что он содержит:
include "config.php"; //echo "WD".NUMBER."p".date("dMY").""; //echo "
--------------------------------------------------------------------------------
"; $table = "WD".NUMBER."i".date("dMY")."";
$res = mysql_query("SELECT * FROM $table");
while($prd = mysql_fetch_array($res))
{ $name = stripslashes($prd['name']);
$org = stripslashes($prd['orgname']);
$phone = stripslashes($prd['phone']); } echo "
Общество с ограниченной ответственностью
ИНТЕРНЕТ-ЗАЯВКА № WD ".NUMBER." от «".date("d")."» ".$mounth." «".date("Y")."» г.
[internet-order] № WD".NUMBER."p".date("dMY")." Ufa time: ".date("h:i:s")." All WD/PC-orders
все теже переменые.............
Спустя 3 минуты, 29 секунд (28.10.2010 - 23:57) vital написал(а):
Цитата |
А как с такими вставками быть? |
Ну убрать не прегреплайсом, а руками, просто было лень писать substr() ибо не помню наизусть синстаксис этих ф-й.
Цитата |
но он же всё равно не формирует html content !!!!!!!!! |
Полный код в студию. обоих файлов.
Спустя 6 минут, 8 секунд (29.10.2010 - 00:03) Игорь_Vasinsky написал(а):
ооооо.. поверь...эт не к чему.... му только сказать что он нужный файл на половину из пхп... текстови мало...
Спустя 1 минута, 10 секунд (29.10.2010 - 00:04) twin написал(а):
Не нужно ничего убирать)))
Просто нужно перевести разбор в режим HTML
Игорь_Vasinsky
Вот не лень заниматься ерундой, а почитать лень...
Причем тут tpl, хоть черта лысого туда суй. Это же просто строка.
Просто нужно перевести разбор в режим HTML
eval('?>'.$text.'<?php');
Игорь_Vasinsky
Вот не лень заниматься ерундой, а почитать лень...
Причем тут tpl, хоть черта лысого туда суй. Это же просто строка.
Спустя 3 минуты, 38 секунд (29.10.2010 - 00:08) vital написал(а):
Цитата |
eval('?>'.$text.'<?php'); |
ЧЕрт, вот никогда в голову такое не приходило=) Всегда убирал из начала строки теги.. +1 вам)

Спустя 1 минута, 6 секунд (29.10.2010 - 00:09) vital написал(а):
Кстати говоря, вариант с реквайром все-равно лучше. т.к. евал очень медленный.
Спустя 44 секунды (29.10.2010 - 00:09) Игорь_Vasinsky написал(а):
да он и грамосский
яж предлогал на простом прмере показать
листинг test.php
пусть обработчик будет нпример sup_pup_creator.php
- он должен извлч всё из test.php и записать в test.html
ну если тебе н в лом конечно...
вот за что уважаю Большого Барса - он ведь подсажет.....а я не хренане пойм... вот в этом заключается вся интрига...
яж предлогал на простом прмере показать
листинг test.php
<?php
include("../config.php");
$text = "ВОт бли всё на пхп";
$b = 10;
$c = 33;
$a = $b + $c;
echo $a;
echo $text;
?>
пусть обработчик будет нпример sup_pup_creator.php
- он должен извлч всё из test.php и записать в test.html
ну если тебе н в лом конечно...
вот за что уважаю Большого Барса - он ведь подсажет.....а я не хренане пойм... вот в этом заключается вся интрига...
Спустя 6 минут, 39 секунд (29.10.2010 - 00:16) vital написал(а):
ну так
file_put_contents('test.html',eval('?>'.file_get_contents('file1.php')))
file_put_contents('test.html',eval('?>'.file_get_contents('file1.php')))
Спустя 4 минуты, 27 секунд (29.10.2010 - 00:21) Игорь_Vasinsky написал(а):
не а..... создаёт test.html и нагло вписывает туда 1
...только 1
...только 1
Спустя 11 минут, 33 секунды (29.10.2010 - 00:32) vital написал(а):
Потому, что я сглупил. Евал вывод то не возвращает.
Что бы сохранить в файл вывод евала -> надо его все-равно перехватывать буфером. Все возвращается к ob_start()
Что бы сохранить в файл вывод евала -> надо его все-равно перехватывать буфером. Все возвращается к ob_start()
Спустя 8 минут, 13 секунд (29.10.2010 - 00:40) Игорь_Vasinsky написал(а):
я просто с этим не сталкивался...
Спустя 2 минуты, 23 секунды (29.10.2010 - 00:43) vital написал(а):
За те пару часов, которые обсуждается эта тема, уже давно можно было посмотреть примеры на php.net по всем обсуждаемым здесь темам и стать по ним гуру.
Спустя 30 минут, 39 секунд (29.10.2010 - 01:13) Игорь_Vasinsky написал(а):
НУ.. ОКА Я ПАРАЛЕЛЬНО ЩЁ 8 ДЕЛ ДЕЛАЮ
Спустя 5 часов, 53 минуты, 12 секунд (29.10.2010 - 07:07) twin написал(а):
Цитата |
НУ.. ОКА Я ПАРАЛЕЛЬНО ЩЁ 8 ДЕЛ ДЕЛАЮ |
и ни одного нормально?

Спустя 2 часа, 21 минута, 15 секунд (29.10.2010 - 09:28) Игорь_Vasinsky написал(а):
1 - нормально...курил..
НуБольшойБарс покажи как сделать...........
НуБольшойБарс покажи как сделать...........
Спустя 22 минуты, 54 секунды (29.10.2010 - 09:51) twin написал(а):
Я так и не понял, чего ты добиваешься. Если шаблонизатор кроишь - я дал ссылку. Поменяй tpl на php, если больше так нравится, и вперед.

Спустя 8 минут, 2 секунды (29.10.2010 - 09:59) Игорь_Vasinsky написал(а):
нееет.... мне нужно с страницу php с скриптами - сохранить как статический уже готовый вывод, чтоб удалить БД из которой наполнялся "шаблон"
Спустя 1 час, 39 минут, 4 секунды (29.10.2010 - 11:38) twin написал(а):
Это называется кэш...
В чем проблема? Бери результат работы шаблонизатора и пиши в файл.
В чем проблема? Бери результат работы шаблонизатора и пиши в файл.
Спустя 3 часа, 11 минут, 30 секунд (29.10.2010 - 14:49) Игорь_Vasinsky написал(а):
я вот про кэш и кк с кэш..не рактиковал
Спустя 18 минут, 16 секунд (29.10.2010 - 15:08) Игорь_Vasinsky написал(а):
а... нашёл... ща почитаю
Спустя 1 день, 5 часов, 47 минут, 22 секунды (30.10.2010 - 20:55) Игорь_Vasinsky написал(а):
twin
ну вот как я сделал:
у меня сформировалась страница-шаблон template.php, но заполняеться она всё ещё с БД
листинг template.php
А static_template.html почему то создаётся пустой - 0 байт
где я сдаунил, понять не могу блин.....
ну вот как я сделал:
у меня сформировалась страница-шаблон template.php, но заполняеться она всё ещё с БД
листинг template.php
<?php
// Начинаем буферизацию вывода
ob_start();
include "../config.php";
// запросы БД
// html
// заполнение html данными из БД
// Останавливаем буферизацию и очищаем буфер вывода
ob_end_clean();
// Получаем содержимое буфера
$buffer = ob_get_contents();
// Останов буферирования и вывод буфера
ob_end_flush();
// Сохранение кэш-файла с контентом
$fp = fopen('static_template.html', 'w');
fwrite($fp, $buffer);
fclose($fp);
?>
А static_template.html почему то создаётся пустой - 0 байт
где я сдаунил, понять не могу блин.....
Спустя 22 минуты, 37 секунд (30.10.2010 - 21:18) Игорь_Vasinsky написал(а):
ну и..........
Спустя 7 минут, 16 секунд (30.10.2010 - 21:25) Игорь_Vasinsky написал(а):
аааааааааааааа.... всё работает
просто здесь я написал
а у себя сделал наоборот т.е. сначала закончил буфиризацию, а потом "записываю" в переменную.....
спасибо[b] Большой Барс.
просто здесь я написал
// Получаем содержимое буфера
$buffer = ob_get_contents();
// Останов буферирования и вывод буфера
ob_end_flush();
а у себя сделал наоборот т.е. сначала закончил буфиризацию, а потом "записываю" в переменную.....
спасибо[b] Большой Барс.
Спустя 1 минута, 24 секунды (30.10.2010 - 21:26) twin написал(а):
Вот тут:
// Останавливаем буферизацию и очищаем буфер вывода
ob_end_clean();
// Получаем содержимое буфера
$buffer = ob_get_contents();
Спустя 32 секунды (30.10.2010 - 21:27) twin написал(а):
Успел таки сам)))
Спустя 2 минуты, 7 секунд (30.10.2010 - 21:29) Игорь_Vasinsky написал(а):
да да........ но мысль всё равно Ваша...... оч благодарен.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker