![]() |
Как прочитать уже обработанный файл?
Проблема в следующем:
к примеру, есть файл text.php: PHP код:
Так мне нужно скриптом прочитать файл text.php, чтобы на выходе у меня получилось именно некое слово, хранящееся в файле text.txt, а не код, который находится в самом text.php. Как мне это сделать? Помогите! :) |
SaNChos
а разве при вставке через include, не происходит выполнение скрипта? |
Если ты вставишь include'ом пхп (или любой исполняемый) файл - то у тебя вставиться результат выполнения скрипта, и будут доступны функции и переменные которые там были описаны.
если ты вставишь текстовый файл - то он просто у тебя вывыдется.. если тебе надо открыть файл и чего-то там прочитать то юзай fopen, fread и так далее |
d0rM03D, medved2002
Все это я понимаю... вроде, не настолько дурак :) Вы просто меня не поняли. Значит задача стоит такая - поиск в тексте, который генерится скриптом. Если я открою fopen'ом, то прочитаю скрипт, а не результат его выполнения. Понятно? :) Мне нужен результат выполнения скрипта, а не его код читать. Так вот как? :/ |
блин открой его через абсолютный путь и радуйся жизни
|
SaNChos
помойму можно сделать проще - результат работы скрипта загонять в другой текстовый файл и по нему уже искать. |
d0rM03D
Имхо, нет :( Представляешь, если у меня не один такой скрипт :) Или его результат слишком велик? :( |
medved2002
абсолютный путь не помогает :( |
делай exec("file.php"); или passthru("file.php"); как я понял
|
В сымсле не помогает.. Лично у меня отлично работает
$fp = fopen('http://www.dav.ru/main.php', 'r'); |
Stasik
По-моему, ты правильно меня понял :) Только вот через fpassthru все равно выводит код, а на passthru выполняет недопустимую операцию :( Чего делать? Может ты пример чтения этой бодяги можешь дать? :) |
код мож дать всего этого дела?
|
SaNChos
в таком случае это конечно не подойдет:) |
Stasik
Было бы совсем хорошо :) Сенькс. d0rM03D Так что подойдет? :/ |
medved2002
Понимаешь, если так делать, то все пути в обрабатывающем скрипте, который и генерит инфу, придется указывать абсолютно тоже... Быстродействие? :/ Но если указать, то работает :) Вот только нужно мне немного другой способ :( |
medved2002
Мда... проверил я быстродействие такого способа... результаты меня не порадовали :( Для сравнения: чтение результата скрипта занимает около 0.35 сек, а шести файлов, в которых ничего не генерируется, - 0.0025... :( Нужен другой способ |
Так а какие проблемы с include "http://server.com/script.php"; или eval(fopen()); ?
|
Цитата:
Другой вариант. ob_start(); include('чего надо'); $string = ob_get_contents (); //получаем что пытался написать твой скрипт ob_end_clean ( ); //убиваем что пытался написать. И в третьих задачу опиши ибо похоже ты просто пытаешь не правильно ее решить. |
RaZEr
include'ом не поможет, я же говорил. мне нужно не включать файл скрипта, а получить результат его обработки... |
medved2002
Попробовал я как ты сказал, но что-то мне вообще никаких результатов выдавать не хочет :( |
Напиши кода как тестил.
Опиши задачу. |
Цитата:
|
RaZEr
Я не гворил что включение кода по абсолютному пути даст мне сам код!!! Не надо меня считать совсем за тупого, плиз. Просто, видимо, ты не понял ту задачу, которую я здесь поставил, либо поленился прочитать несколько моих предыдущих постов... :( |
medved2002
Объясняю ситуацию на "пальцах" :) - у меня есть 1-ая группа скриптов, которая генерит инфу на страницы. - есть скрипт поиска... поиск в файлах *.php Так понятно? :) Задача состоит в следующем: - получить инфу скриптом поиска из первой группы скриптов. обработать и выдать результат факин поиска :) RaZEr Как ты представляешь include в этом случае? Выводить все результаты всех страниц??? ЗЫ Имхо, мне нужно запихать эти результаты в какой-то поток, потом его обработать и выдать результат. По средствам открытия файлов абсолютным путем все получается, но достаточно долго. Есть ли другой способ? Вот и все, что я хотел спросить. Надеюсь, что на этот раз всем стало ясно, что я хочу сделать. Спасибо за внимание :) |
Посты я твои прочесть не поленился, но видимо у тебя русский язык второй, потому что я незнаю что еще могут означать слова "Мне нужен результат выполнения скрипта" ... тебе и дали как этот результат получить .
Ты спрашиваешь "По средствам открытия файлов абсолютным путем все получается, но достаточно долго" ... тебе сказали как открыть с относительным (fopen(),eval()) ... "Не надо меня считать совсем за тупого, плиз" ... это не я сказал ... |
1. Ну вообще если есть возмножность ставь mnogoSearch. :)
2. Способ открытия абсолютным путем наиболее подходит в этом случае. 3. Теперь осталось выяснить почемe не работает ob_flush. Версия ПХП и ОС? |
А ты собираешься при поиске каждый раз запускать скрипт который будет обрабатывать?
Если так то это не хорошо - сделай индексацию и все в базу или еще куда. |
medved2002
1. Побежал ставить :) 2. Работает, только долго. Вот я и спрашивал есть ли другой способ... :( 3. 4.1.0, Win98SE А насчет "еще куда" я уже начал подумывать... :( |
3. Тады ясно - с flush() были какие-то траблы под виндой... По крайней мере у меня, ламака. Попробуй либо ПХП поставить поновее, либо Винды сменить :))))))))
2. Ну долго - если будешь результаты куда-то ложить то никаких траблов не будет.. |
4.1.0 ... flush работает начиная с 4.2.0 .
|
RaZEr
>Посты я твои прочесть не поленился, но видимо у тебя русский язык второй, потому что я незнаю что еще могут означать слова "Мне нужен результат выполнения скрипта" ... тебе и дали как этот результат получить . 1. Языком владею вполне нормально. Русский - первый, но не последний. 2. Как обычно получить результат я знаю. Поэтому немного переформулировал свой вопрос позже. >Ты спрашиваешь "По средствам открытия файлов абсолютным путем все получается, но достаточно долго" ... тебе сказали как открыть с относительным (fopen(),eval()) ... fopen не катит. может пример дашь, если сейчас понял мою задачу? >"Не надо меня считать совсем за тупого, плиз" ... это не я сказал ... А "мде ... вообщем без комментариев ..." может показаться достаточно резким добавлением к ответу, по крайней мере, не совсем приятным. Если ты решил мне помочь, то, плиз, нельзя ли это делать немного вежлевее, объяснять понятнее или не делать вообще? Не все такие "гуру" как ты. Имхо, для этого и существует форум, чтоб спрашивать и получать ответы. ЗЫ Я не хочу продолжать этот бессмысленный спор, портить нервы себе, постить "пустые" посты: я сюда не за этим пришел. Так что предлагаю тебе набраться немного терпения в мою сторону и попытаться понять,. Я только учусь и хотелось бы не замечать "мдя, мде, ууу" и тд. Спасибо. |
medved2002
Спасибо тебе за помощь :) Отдал бы тебе второй голос, но он у меня только один :) |
Цитата:
$files = array('page1.php','page2.php','page3.php'); $buf = ''; foreach($files as $file_name) { $fp = fopen($filename,'r'); if ($fp) {$buf .= eval(fread($fp,filesize($file_name))); fclose($fp); } } Про вежливее и фразы "без комментариев": я тебе пишу как получить результат работы скрипта, а ты мне "мне нужно не включать файл скрипта, а получить результат его обработки" ... меня возмутило не твое знание PHP, а твоя невнимательность или называй как хочешь ... А спор и правда продолжать не стоит, тебе его и начинать не следовало ... и это уже не первый спор между нами ... |
RaZEr
Ладно, если я был неправ, то извини :) Забили про спор и т.д. и т.п. Насчет примера: <? $fp = fopen("file.php" ,"r"); $buf = eval(fread($fp, filesize("file.php"))); fclose($fp); ?> Parse error: ... eval()'d code on line ... :(( Чего делать? |
Незнаю ... попробуй или так:
$buf = eval(fread($fp, filesize("file.php")).'return();'); или через буфер вывода: $files = array('page1.php','page2.php','page3.php'); $buf = ''; foreach($files as $file_name) { ob_start(); include $file_name; $buf .= ob_get_contents(); ob_end_clean(); } |
Мне кажеться что например вот такая конструкция
$eeee = eval('echo "medved";'); ничегошеньки тебе в $eeee не запишет а просто выведет "medved" посему $buf = eval(fread($fp, filesize("file.php"))); - лишено какого-либо смысла |
Цитата:
Цитата:
|
Цитата:
|
Все, работает :) Всем спасибо :)
|
Так как ты все-таки сделал ?
|
| Часовой пояс GMT +4, время: 22:16. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.