AKB Forums

Go Back   AKB Forums > Technical sections > Languages, Compilers and Interpreters > Web Development
Home Register Blogs FAQ Members List Calendar Downloads Arcade Mark Forums Read

Web Development Java/PHP/Perl/ASP and more

Troubles when posting message? Click here! :: Проблемы с отправлением сообщения? Нажмите сюда!

Reply
 
LinkBack Thread Tools Display Modes
Old Oct 13, 2003, 05:26   #1
Младенец
 
di0phantus's Avatar
 
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
}
di0phantus is offline   Reply With Quote Quote selected
Old Oct 13, 2003, 19:45   #2
ЙЦУКЕН
 
Join Date: Jul 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Posts: 3,114
Rep Power: 7
Reputation: 10
Send a message via ICQ to nm
sha skazhu
nm is offline   Reply With Quote Quote selected
Old Oct 13, 2003, 19:47   #3
WYSIWYG
 
mk's Avatar
 
Join Date: May 2002
Location: /dev/null
Posts: 592
Rep Power: 7
Reputation: 10
Send a message via ICQ to mk
RTFM aka rtfm.
__________________
mk is offline   Reply With Quote Quote selected
Old Oct 13, 2003, 19:47   #4
ЙЦУКЕН
 
Join Date: Jul 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Posts: 3,114
Rep Power: 7
Reputation: 10
Send a message via ICQ to nm
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 ?
nm is offline   Reply With Quote Quote selected
Old Oct 13, 2003, 19:49   #5
WYSIWYG
 
mk's Avatar
 
Join Date: May 2002
Location: /dev/null
Posts: 592
Rep Power: 7
Reputation: 10
Send a message via ICQ to mk
О! он даже сказал man что! (:
__________________
mk is offline   Reply With Quote Quote selected
Old Oct 16, 2003, 07:59   #6
Младенец
 
di0phantus's Avatar
 
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');
?>
потом 1. запускаем с командной строки
php.exe -q out.php
получаем Kuckuck

все ОК, потом делаем запрос на этот файл серверу..
http://localhost/that_file.php

и ничего не получаем...
---------------------------------------------
я получается неправильно сформулировал вопрос...

можно я еще? :)

я так понял echo, print выводят не на stdout a прямо в клиенту в сокет. а есть способ получить handle oт этого патока?
di0phantus is offline   Reply With Quote Quote selected
Old Oct 16, 2003, 11:06   #7
Moderator
 
Join Date: Mar 2002
Location: Ukraine
Posts: 123
Rep Power: 7
Reputation: 10
А что ты хочешь сделать? Можешь объяснить подробней?
__________________
Життя - це не тільки будні © Nemiroff
hayk is offline   Reply With Quote Quote selected
Old Oct 16, 2003, 11:56   #8
Младенец
 
di0phantus's Avatar
 
Join Date: May 2002
Location: Yerevan, RA
Posts: 58
Rep Power: 0
Reputation: 10
>>А что ты хочешь сделать? Можешь объяснить подробней?

Без проблем.

есть такая идея написать что отдаленно похожую на
препроцессора или частично компилятора (как в Си, только намного проще)
а цель, просто чтобы ускорить процесс генерацыи сайта.

в двух словах...

страница генерируется на основе тэмплитов, где многое описано моими тэгами. тут просто имеет смысл (так как некоторые тэги не зависят от параметров запроса) частично скомпилировать его... а после, генерировать страницы от скомпилированных тэмплитов...

такой подход реализован в Smarty, правда я в кодах не копался еще... но идея пришла оттуда..

короче надо чтоб мой компилятор в зависимости от параметров или выводил исход в файл или куда он там выводит... (разумеется если в файл то частично комплированную версию)

Не то что проблему нельза никак решить, просто желательно решить красиво... а то всегда можно вставить парочку иф элсов..
di0phantus is offline   Reply With Quote Quote selected
Old Oct 16, 2003, 12:38   #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
hayk is offline   Reply With Quote Quote selected
Old Oct 16, 2003, 14:07   #10
Младенец
 
di0phantus's Avatar
 
Join Date: May 2002
Location: Yerevan, RA
Posts: 58
Rep Power: 0
Reputation: 10
мешают в основном время, нервы и т.д.
я в смарти не копался, но прифейс читал... так что знаю только что там реализовано, но не знаю как...

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

честно говоря тот код который сейчас есть, меня устраивает.
занимаюсь РНР я с недавних пор, и этот вопрос я просто хотел бе выяснить для себя..

а вопрос пока что остался открытым... а именnо
как echo ili print zamenit' na fwrite(...)
__________________
Все не так уж важно ...
di0phantus is offline   Reply With Quote Quote selected
Old Oct 16, 2003, 14:40   #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
hayk is offline   Reply With Quote Quote selected
Old Oct 17, 2003, 06:54   #12
Младенец
 
di0phantus's Avatar
 
Join Date: May 2002
Location: Yerevan, RA
Posts: 58
Rep Power: 0
Reputation: 10
так гораздо теплее :))

hayk: спасибо за помощь. код нехитрый но многое показал с чем я не был знаком, я еще почитаю про этот буферинг.

а доступа к этому потоку наверно и не предусмотрено, хотя ничего не доказывает это.
если узнаю дам знать...

спасибо всем еще раз.
__________________
Все не так уж важно ...
di0phantus is offline   Reply With Quote Quote selected
Old Oct 17, 2003, 23:24   #13
ЙЦУКЕН
 
Join Date: Jul 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Posts: 3,114
Rep Power: 7
Reputation: 10
Send a message via ICQ to nm
Quote:
Originally posted by di0phantus
так гораздо теплее )

hayk: спасибо за помощь. код нехитрый но многое показал с чем я не был знаком, я еще почитаю про этот буферинг.

а доступа к этому потоку наверно и не предусмотрено, хотя ничего не доказывает это.
если узнаю дам знать...

спасибо всем еще раз.

да. если нужн овыловить результат работы пхп сцрипта - фол'ко через буфферинг ...или
fopen("http://foor.com/bar.php", "r") nu i daльше получить результат его работы ...
2 жариант чуть более (или очень более) загружает сервер )
nm is offline   Reply With Quote Quote selected
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 10:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
This board was founded on September 29, 2001
Powered by Viper Internet

Affordable Web Hosting | ParevNet

Buy text link