PHP ob_

Programovacie jazyky, rady, poradňa...
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

PHP ob_

Príspevok od používateľa m_pro_m »

Zdravím,

veľmi by som poprosil, aby mi mohol aspoň niekto napísať malý kód, kde by bolo jasne naznačené, čo robia tieto funkcie: ob_start, ob_get_contents, ob_flush, flush, ob_end_*
Čo som pozeral na php.net tak moc príkladov, ktoré by mi dali jasne najavo o čo ide som nenašiel.

Ďakujem za každú radu
camo
Medium Expert
Medium Expert
Príspevky: 98
Registrovaný: 05 sep 2009, 14:01
Bydlisko: Lehota
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa camo »

Nechápem čo nechápeš. Na php.net máš pri ob_start všetko na čo si sa pýtal vysvetlené hneď v prvých dvoch odstavcoch.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa audiotrack »

ob = output buffer. Takže ob_start() nastaví že všetko čo ide na výstup (funkcie echo, print..) nepôjde na monitor ale do bufferu. ob_flush() zase všetko z bufferu vypíše na monitor. ob_get_contents() zoberie obsah bufferu a priradí do premennej.. Ukážky máš na php.net. Tieto funkcie nepoužívaj pokiaľ nemusíš, sú dosť pamäťovo náročné keď všetko pcháš do bufferu namiesto priameho výpisu na výstup
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: PHP ob_

Príspevok od používateľa m_pro_m »

dík audiotrack .. a nevedel by si mi poradiť, ako by som mohol vypísať konštantu, ktorú definujem až po jej vypísaní ? Samozrejme že to chcem riešiť cez tieto funkcie ..
Mne to nejako nejde ..

Kód: Vybrať všetko

ob_start();
echo KONSTANTA;,
...
define("KONSTANTA", ob_get_contents());
ob_end_flush();
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP ob_

Príspevok od používateľa BX »

Prečo chceš robiť takúto zvrhlosť? :cry:
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: PHP ob_

Príspevok od používateľa m_pro_m »

To je jedno prečo :D Proste by som to nejako potreboval docieliť a neviem ako .. a od známych som sa dozvedel že to ide práve cez túto funkciu
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP ob_

Príspevok od používateľa BX »

Možno podcením vlastnosť php prekvapovať ma hlúposťami, ale toto by už z princípu nemalo byť možné a neviem si predstaviť ten zvrátený dôvod, ktorý by takúto konštrukciu vyžadoval.
harrison napísal:Neviem co maju vsetci proti PHP ?
Ja nemám nič proti PHP, naopak mám ten jazyk veľmi rád a často ho používam. Ale je v ňom toľko divných vecí, že by som sa nečudoval, keby sa tam dala vypisovať budúcnosť :D
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa harrison314 »

Neviem co maju vsetci proti PHP ?

BX: nie nahodou hlupost ludi ? :lol:

<Genius/PRO> : Ako chces vypisat daco co nejstvuje ?
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: PHP ob_

Príspevok od používateľa m_pro_m »

Ehm.. proste podľa názoru iných sa to má v buferi povedzme spracovať aby to potom bolo použiteľné
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa audiotrack »

iní ťa klamú, lebo ich prog. zručnosti asi neprevyšujú tie tvoje
m_pro_m
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 268
Registrovaný: 05 jún 2009, 20:42

Re: PHP ob_

Príspevok od používateľa m_pro_m »

vraj to je tak spravené aj v RS PHP-Fusion .. pri výpise CONTENT konkrétne
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: PHP ob_

Príspevok od používateľa BX »

Tak si ho stiahni a pozri sa ako to robia.
Stále by ma ale zaujímal dôvod.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa audiotrack »

a to ti je taký problém tú konštantu definovať skôr? Takýto návrh ako sa pokúšaš spraviť je zverstvo a dúfam že ak to aj nejakou fintou ide, tak sa nikdy nestretnem s takým kódom. Ale nemyslím že by to malo ísť, zrejme je to iba nejaké makro a nie konštanta
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa harrison314 »

Da sa spravit daco takehoto, ale pouzivat to je vrcholne nevhodne.

Kód: Vybrať všetko

ob_start();
echo "KONSTANTA";,
...
$content= strreplace(ob_get_contents(),"KONSTANTA", " novy obsah");
ob_end_clean();
echo $content;
flush();
ob_end_flush();
Praca z vystupnym bufrom by mala byt iba ak chces komprimovat obsah.
Ja som ju este pouzival na istom free servery na odstranenie html reklami ktora bola vkladana do CAPTCHi.
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa TommyHot »

<Genius/PRO> napísal:

Kód: Vybrať všetko

define("KONSTANTA", ob_get_contents());
To si v ktorom americkom filme videl robit taketo prasaciny? Konstanta musi byt jasne definovana a funkcia moze mat variabilny vystup. Nie je toho jazyka, ktory by ti toto zozral :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa audiotrack »

TommyHot napísal: To si v ktorom americkom filme videl robit taketo prasaciny? Konstanta musi byt jasne definovana a funkcia moze mat variabilny vystup. Nie je toho jazyka, ktory by ti toto zozral :)

Kód: Vybrať všetko

<?php
function foo(){
	return mt_rand(1,100);
}

define("KONSTANTA", foo());

echo KONSTANTA;
?>
here you go
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa TommyHot »

A to som myslel, ze ma php uz nema cim prekvapit. Nebodaj to funguje aj v inych jazykoch?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa audiotrack »

áno, funguje. V princípe to musí fungovať v každom interpretovanom jazyku
TommyHot
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3340
Registrovaný: 25 okt 2009, 0:23
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa TommyHot »

Dal by som ruku do ohna za to, ze nedavno mi interpreter hulakal, ked som konstantu definoval premennou, teda

Kód: Vybrať všetko

define('konstanta', $var);
Teraz pozeram, ze s tym php nema problem.
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8223
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: PHP ob_

Príspevok od používateľa harrison314 »

TommyHot napísal:Dal by som ruku do ohna za to, ze nedavno mi interpreter hulakal, ked som konstantu definoval premennou, teda

Kód: Vybrať všetko

define('konstanta', $var);
Teraz pozeram, ze s tym php nema problem.
Konstanta znamena to, ze po jej inicializacii ju nemozes modifikovat a to plati aj v niektorych kompilovanych jazykoch.
Napísať odpoveď