PHP 코드를 디버깅하고 싶지만 화면이나 파일에 로그를 인쇄하는 것이 좋습니다.
PHP 코드로 로그를 인쇄하려면 어떻게해야합니까?
일반적인 print
/ printf
콘솔이 아닌 HTML 출력으로 이동하는 것 같습니다.
PHP 코드를 실행하는 Apache 서버가 있습니다.
답변
덜 알려진 트릭은 mod_php가 stderr을 Apache 로그에 매핑한다는 것입니다. 그리고 그것에 대한 스트림이 있으므로 Apache 오류 로그에 file_put_contents('php://stderr', print_r($foo, TRUE))
값을 멋지게 덤프합니다 $foo
.
답변
error_log(print_r($variable, TRUE));
유용 할 수 있습니다
답변
error_log 를 사용 하여 서버 오류 로그 파일 (또는 원하는 경우 선택적인 다른 파일)로 보낼 수 있습니다
답변
Linux를 사용하는 경우 :
file_put_contents('your_log_file', 'your_content');
또는
error_log ('your_content', 3, 'your_log_file');
그런 다음 콘솔에서
tail -f your_log_file
파일에 넣은 마지막 줄이 계속 표시됩니다.
답변
마음의 틀을 바꿔야합니다. 당신은 PHP를 작성하고 있습니다. 콘솔 환경에서는 PHP에서의 디버깅이 수행되지 않습니다.
PHP에는 3 가지 범주의 디버깅 솔루션이 있습니다.
- 웹 페이지로 출력합니다 (사물을 더 잘 보려면 dBug 라이브러리 참조).
- 로그 파일에 쓰기
- xDebug를 사용한 세션 디버깅
PHP를 익숙한 다른 언어처럼 행동하게 만드는 대신에 그것들을 사용하는 법을 배우십시오.
답변
콘솔에서 디버깅하고 있습니까? PHP 디버깅을위한 다양한 옵션이 있습니다. 빠르고 더러운 디버깅에 사용되는 가장 일반적인 기능은 var_dump 입니다.
var_dump가 대단하고 많은 사람들이 그 모든 것을 수행하지만, 그것을 매끄럽게 만들 수 있는 다른 도구와 기술 이 있습니다.
웹 페이지에서 디버깅 할 때 도움이되는 사항은 <pre> </pre>
덤프 문을 태그로 감싸서 배열과 객체에 적절한 형식을 지정합니다.
즉 :
<div> some html code ....
<a href="<?php $tpl->link;?>">some link to test</a>
</div>
dump $tpl like this:
<pre><?php var_dump($tpl); ?></pre>
마지막으로 오류 처리 디버깅이 오류를 표시하도록 설정되어 있는지 확인하십시오. 서버 구성에 액세스 할 수없는 경우 스크립트 맨 위에 이것을 추가해야 할 수도 있습니다.
error_reporting(E_ALL);
ini_set('display_errors', '1');
행운을 빕니다!