Portál AbcLinuxu, 10. května 2024 11:25


Dotaz: Jak uložit výstup z PHP před odesláním?

16.12.2003 18:33 Luda Vitoul | skóre: 3
Jak uložit výstup z PHP před odesláním?
Přečteno: 94×
Odpovědět | Admin
Potřebuji pomoc. Potřebuji něco takovéto:

1) mám Apache + PHP a user si požáda o stránku (script) 2) při vykonávání scriptu se rozhodnu, že výstup tohoto scriptu chci i uložit do souboru (hned na začátku - ukládalo by se to jen občas - podle parametru scriptů) 3) skript se vykoná, výsledek se uloží do souboru a odešle uživateli.

============ myslím, že by to šlo asi takto:

při vykonávání scriptu v PHP se na výstup pošle nejaká direktiva (pokud budou splněny podmínky) např. "#file:nejaky_nazev_souboru" a výstup z php se pošle jinému modulu, který vstup kopíruje na výstup (tedy tam kam to mělo původně ukládat PHP) a pokud narazí na #file:soubor tak zároveň kopíruje vstup i do souboru soubor --- no teoreticky to mám vymyšlené, ale realizace je horší.

takže potřebuji poradit: 1) jak "zřetězit" moduly apache 2) jak vytvořit modul co dělá činnost popsanou výše (stačí odkaz na modul podobného zaměření - zdrojáky si projdu a zkusím přeprogramovat) ... nebo to udělat jinak, pokud možno co nejednodušeji
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.12.2003 19:35 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Jak uložit výstup z PHP před odesláním?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jednak to asi půjde přímo v PHP pomocí direktivy output_handler, což se ale může s něčím bít a navíc to bude muset být built-in, nikoli funkce napsaná v PHP (to by šlo pomocí ob_start(), což ale může znamenat nutnost různých zásahů do kódu). A pokud chceš filtr do Apache2, který jen normálně přidáš AddOutputFilter, tak asi přečíst http://httpd.apache.org/docs-2.0/developer/, prostudovat modules/filters ve zdrojácích Apache, ... a pak už vesele kódovat ;-)
16.12.2003 19:36 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
Rozbalit Rozbalit vše Jak uložit výstup z PHP před odesláním?
Odpovědět | | Sbalit | Link | Blokovat | Admin
jdes na to moc slozite, je zbytecne hrat si s moduly apache, staci si vystup ukladat do nejake promenne a pak ho cely pres echo poslat ven (toto je docela caste reseni) a pripadne ho ulozit nekam do souboru. pripadne dalsi reseni je pouziti output bufferu - mrkni se na http://cz.php.net/manual/en/ref.outcontrol.php tim to pujde resit naprosto elegentne s minimalnim zasehem do kodu pokud petrebujes poradit s phpkem doporucoval bych nejakou diskuzni skupinu - dobra je treba na www.okoun.cz
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
16.12.2003 20:13 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Jak uložit výstup z PHP před odesláním?
Ukládat si výstup do nějaké proměnné a vypsat všechno najednou je snadné, pokud to tak je od začátku napsané ... což ale není vždycky ten případ (např. víceméně statické stránky jen s trochou PHP) -- a pak je to těžká pruda.
16.12.2003 20:44 Luda Vitoul | skóre: 3
Rozbalit Rozbalit vše Jak uložit výstup z PHP před odesláním?
Diky, myslel jsem, ze to pujde jednoduse, jen jsem nevedel jak.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.