2016-08-10 5 views
1

Я хочу получить и записать каждый запрос в мой PHP-файл и каждый ответ, который выводит мой PHP-файл.php - как получить заголовок и тело ответа сервера

Что касается запроса, легко получить супер глобальные переменные, например $_post['key'], но я не уверен, как получить то, что мой php-файл выдает клиенту. Единственное, что я могу сделать, это задержать любой echos в моем коде и построить одну выходную строку, такую ​​как $response, бросить мой PHP-код и echo в конце скрипта. как:

$response = ""; 
$response .= "<html> somehtml"; 
//somecode if($condition){ $response .= "some html"}else{$response .= "another html"} 
//more code 
$response .="</html>"; 
echo $response; 
log($response); // custom function to store the response 

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

Есть ли способ использовать вторят бросить свой код и получить свой весь ответ включая заголовки ответа и все, что мои PHP-сервер выходы?

спасибо.

+0

Это, как правило, хорошая практика, чтобы собрать первый выход из различных частей приложения, а затем отправить его клиенту в одном месте. Перекодирование может показаться ужасным сейчас, но в конечном итоге это сделает вашу программу более удобной в обслуживании. – Max

ответ

2

Вы можете использовать ob_start и связанные с ним методы, которые будут содержать весь вывод в буфере, пока вы не захотите его отправить.

Например:

ob_start(); 

echo 'weeee'; 

$output = ob_get_contents(); // get the contents from the buffer 
log($output); // your custom function 

ob_end_flush(); // send the output to the browser and turn off buffering 
+0

- это '$ output', теперь есть предупреждения и ошибки, которые выходят php? –

+0

Он должен иметь все, что обычно выводится напрямую. – rjdown

+0

Thaaank вас, это именно то, что я искал. и для ответа «заголовки», что я могу сделать? –

Смежные вопросы