Autor Zpráva
phpX
Profil
Dobrý den,
mám otázku na outbut buffering. Uvádím zjednodušený příklad.

Tohle jsem našel v PHP manuálu:
ob_start();
echo 'Text that won\'t get displayed.';
ob_end_clean();


Poupravil jsem to takhle:
ob_start();
while (1)
    echo 'Text that won\'t get displayed.';
ob_end_clean();


Otevřel jsem stránku z prohlížeče a po několika vteřinách se výstup zobrazil. Lze nějak zaručit, aby se tento výstup nezobrazil?
Alphard
Profil
váš příklad je dosti pochybný
zacyklední zatíží server a asi bude ukončeno chybou, memory limit, time limit a nevím co ještě

pak je dost možné, že se nebude vyhodnocovat zbytek scriptu a skončí to všude jinde, já jsem to zkusil u sebe a skončilo to chybou, kterou mi oznámila Opera, podrobnosti nevím a ani mě nazajímají

jestli nechcete výpis, nepoužívejte echo, jinak v normálním programu bude příklad z manuálu fungovat
phpX
Profil
A jak mám potom řešit situaci, kdy mám php skript a chci jej includovat do proměnné - aniž bych použil ob?
TFSi
Profil
phpX
chci jej includovat do proměnné
Co to?

Něco jako:
$code = file_get_contents('included_file.php');

???
Kcko
Profil
Psal ze chce includovat php kod do promenne .. cili urcity usek kodu .. na ob_start nevidim nic spatneho .. jinak take

http://www.webfaq.cz/clanek/Jak-na-mnohonasobne-bufferovani-aneb-jak-s pravne-pouzivat-ob-start
Mastodont
Profil
Anebo vkládat přes include jako návratovou hodnotu, pokud chce do proměnné dostat třeba pole, ne obyčejný string.
phpX
Profil
na tohle jsem přišel:
<?php
ob_start ();

for ($i=0;$i<1e7;$i++) echo 'a';

$len = ob_get_length ();

ob_clean ();

echo $len;
mi nevypíše nic, pravděpodobně buffer překročí nějaký limit velikosti (možná memory limit)

Kcko
jo, to je dobrý, díky za radu

Mastodont
to řeším funkcí serialize () ;-)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0