![]() | |
| |||||||
| Home | Register | Blogs | FAQ | Members List | Calendar | Downloads | Arcade | Mark Forums Read |
| Web Development Java/PHP/Perl/ASP and more |
![]() |
| | LinkBack | Thread Tools | Display Modes |
| | #1 |
| Младенец Join Date: May 2002 Location: Yerevan, RA
Posts: 58
Rep Power: 0 Reputation:
10 | Как перенапрлять потоки? STDOUT, FILE ov im nman gone mi qich PERL giti kimana, vor print-@ ashxatum er patoknerov, tipa $file = $condition ? ">some.file" : ">-"; open (F, $file); print F $data; hima vonc karelia nman mi ban irakanacnel php-um? asenq grel senc mi ban function out($data, $file) { // .... kaxvac $file-ic } |
| | |
| | #2 |
| ЙЦУКЕН | sha skazhu |
| | |
| | #4 |
| ЙЦУКЕН | rtmf eshe raz :) http://php.net/fopen kurit' na predmet special'nyh fajlow php://stdin, php://stdout i , kak vy uzhe dogadalis', doragaju publika, php://stderr :) dal'she objasnjat' nado ? |
| | |
| | #6 |
| Младенец Join Date: May 2002 Location: Yerevan, RA
Posts: 58
Rep Power: 0 Reputation:
10 | жнаю жнаю... :)) пипл.. однако это всего лишь теория, а на практике? я сам пробывал, примерно так. Code:
<?PHP
function my_print ($data, $out_stream = 'php://stdout') {
$h = fopen($out_stream, 'w');
fwrite($h, $data);
}
my_print('Kuckuck');
?> php.exe -q out.php получаем Kuckuck все ОК, потом делаем запрос на этот файл серверу.. http://localhost/that_file.php и ничего не получаем... --------------------------------------------- я получается неправильно сформулировал вопрос... можно я еще? :) я так понял echo, print выводят не на stdout a прямо в клиенту в сокет. а есть способ получить handle oт этого патока? |
| | |
| | #8 |
| Младенец Join Date: May 2002 Location: Yerevan, RA
Posts: 58
Rep Power: 0 Reputation:
10 | >>А что ты хочешь сделать? Можешь объяснить подробней? Без проблем. есть такая идея написать что отдаленно похожую на препроцессора или частично компилятора (как в Си, только намного проще) а цель, просто чтобы ускорить процесс генерацыи сайта. в двух словах... страница генерируется на основе тэмплитов, где многое описано моими тэгами. тут просто имеет смысл (так как некоторые тэги не зависят от параметров запроса) частично скомпилировать его... а после, генерировать страницы от скомпилированных тэмплитов... такой подход реализован в Smarty, правда я в кодах не копался еще... но идея пришла оттуда.. короче надо чтоб мой компилятор в зависимости от параметров или выводил исход в файл или куда он там выводит... (разумеется если в файл то частично комплированную версию) Не то что проблему нельза никак решить, просто желательно решить красиво... а то всегда можно вставить парочку иф элсов.. |
| | |
| | #9 |
| Moderator Join Date: Mar 2002 Location: Ukraine
Posts: 123
Rep Power: 7 Reputation:
10 | А что тебе мешает сделать так: 1. Как в Smarty (компилируемый шаблон) Есть шаблон. Smarty компилирует его один раз и получает код на php. 2. Как в других, некомпилируемых шаблонах Есть шаблон. При выполнении скрипта шаблон парсится и получается php код, который сразу выполняется. 3. Написать модуль для php Модуль, который работает по схеме 1 или 2. 4. Перехватывать httpout В php можно перехватывать буфер вывода. Ты можешь обрабатывать его, но это будет обработка уже после php. Или тебе все же надо что-то другое?
__________________ Життя - це не тільки будні © Nemiroff |
| | |
| | #10 |
| Младенец Join Date: May 2002 Location: Yerevan, RA
Posts: 58
Rep Power: 0 Reputation:
10 | мешают в основном время, нервы и т.д. я в смарти не копался, но прифейс читал... так что знаю только что там реализовано, но не знаю как... было бы время я бы покапался в кодах, уверен многому и научился бы... я сам не намереваюсь писать что-то очень гибкое универсальное, просто хочу предусмотреть возможность прекомпиляции на случай если время парсинга в обычном режиме неустроит. честно говоря тот код который сейчас есть, меня устраивает. занимаюсь РНР я с недавних пор, и этот вопрос я просто хотел бе выяснить для себя.. а вопрос пока что остался открытым... а именnо как echo ili print zamenit' na fwrite(...)
__________________ Все не так уж важно ... |
| | |
| | #11 |
| Moderator Join Date: Mar 2002 Location: Ukraine
Posts: 123
Rep Power: 7 Reputation:
10 | А так не подходит? <?php ob_start(); ... echo 'Hello World!'; ... $content = ob_get_contents(); ob_end_clean(); ... fwrite ($fp, $content); ?>
__________________ Життя - це не тільки будні © Nemiroff |
| | |
| | #12 |
| Младенец Join Date: May 2002 Location: Yerevan, RA
Posts: 58
Rep Power: 0 Reputation:
10 | так гораздо теплее :)) hayk: спасибо за помощь. код нехитрый но многое показал с чем я не был знаком, я еще почитаю про этот буферинг. а доступа к этому потоку наверно и не предусмотрено, хотя ничего не доказывает это. если узнаю дам знать... спасибо всем еще раз.
__________________ Все не так уж важно ... |
| | |
| | #13 | |
| ЙЦУКЕН | Quote:
да. если нужн овыловить результат работы пхп сцрипта - фол'ко через буфферинг ...или fopen("http://foor.com/bar.php", "r") nu i daльше получить результат его работы ... 2 жариант чуть более (или очень более) загружает сервер ) | |
| | |