Сохранение вывода php в файл - PullRequest
1 голос
/ 03 мая 2011

у меня есть:

<code>echo"<br>";echo"<br><pre>";print_r($array2);echo"
"; эхо "
"; эхо "
";print_r($array3);echo"
"; эхо "
"; эхо "
";print_r($array4);echo"
";

Мне нужно сохранить то, что все эти print_r печатают в файл (не произнося ничего на странице).

Я знаю, что мне нужно сделать что-то подобное:

$f = fopen("file.txt", "w");
fwrite($f, "TEXT TO WRITE");
fclose($f); 

Но я не знаю, как поместить содержимое раньше в него.

Тысяча миллионов

Ответы [ 2 ]

14 голосов
/ 03 мая 2011

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

<code>ob_start();
echo"<br>";echo"<br><pre>";print_r($array2);echo"
"; echo"
"; echo"
";print_r($array3);echo"
"; echo"
"; echo"
";print_r($array4);echo"
"; $ content =ob_get_contents (); $ f = fopen ("file.txt", "w"); fwrite ($ f, $ content); fclose ($ f);

Редактировать: Если вы не хотите показывать вывод на своей странице, вам просто нужно вызвать ob_end_clean ():

ob_start();
//...

$content = ob_get_contents();
ob_end_clean();
//... write the file, either with fopen or with file_put_contents
2 голосов
/ 03 мая 2011

Попробуйте это, используя true параметр в print_r:

$f = fopen("file.txt", "w");
fwrite($f, print_r($array2, true));
fwrite($f, print_r($array3, true));
fwrite($f, print_r($array4, true));
fclose($f); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...