[php] PHP로 콘솔에 쓰려면 어떻게해야합니까?

문자열을 쓰거나 콘솔에 로그인 할 수 있습니까?

내 말은

JSP에서와 같이 system.out.println("some"), 우리와 같은 것을 인쇄 하면 페이지가 아닌 콘솔에 나타납니다.



답변

Firefox

Firefox에서는 PHP 응용 프로그램에서 콘솔로 정보를 로깅하고 덤프 할 수있는 FirePHP 라는 확장명을 사용할 수 있습니다 . 이것은 멋진 웹 개발 확장 프로그램 Firebug 의 애드온 입니다.

크롬

그러나 Chrome을 사용하는 경우 Chrome Logger 또는 webug 라는 PHP 디버깅 도구 가 있습니다 (webug에 로그 순서에 문제가 있음).

보다 최근에는 Clockwork 가 활발히 개발 중이며 유용한 디버깅 및 프로파일 링 정보를 제공하기 위해 새 패널을 추가하여 개발자 도구를 확장합니다. Laravel 4Slim 2에 대한 기본 지원을 제공 하며 확장 가능한 API를 통해 지원을 추가 할 수 있습니다.

Xdebug 사용

PHP를 디버깅하는 더 좋은 방법은 Xdebug를 사용하는 것 입니다. 대부분의 브라우저는 필요한 쿠키 / 쿼리 문자열을 전달하여 디버깅 프로세스를 초기화하는 데 도움이되는 도우미 확장을 제공합니다.


답변

또는 PHP 디버그에서 콘솔로 의 트릭을 사용합니다 .

먼저 작은 PHP 도우미 기능이 필요합니다

function debug_to_console($data) {
    $output = $data;
    if (is_array($output))
        $output = implode(',', $output);

    echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
}

그런 다음 다음과 같이 사용할 수 있습니다.

debug_to_console("Test");

다음과 같은 출력이 생성됩니다.

Debug Objects: Test


답변

간단한 접근 방식을 찾고 있다면 JSON으로 에코하십시오.

<script>
    console.log(<?= json_encode($foo); ?>);
</script>


답변

기본적으로 모든 출력은 stdout스크립트가 Apache에 의해 실행되는지 또는 명령 행에서 수동으로 실행되는지에 따라 HTTP 응답 또는 콘솔입니다. 그러나 error_log로깅에 사용할 수 있으며로 다양한 I / O 스트림 을 쓸 수 있습니다 fwrite.


답변

다음을 시도하십시오. 작동 중입니다.

echo("<script>console.log('PHP: " . $data . "');</script>");


답변

echo
"<div display='none'>
    <script type='text/javascript'>
        console.log('console log message');
    </script>
</div>";

를 만듭니다

<div>

이랑

display="none"

div가 표시되지 않지만

console.log()

함수는 자바 스크립트로 생성됩니다. 콘솔에 메시지가 나타납니다.


답변

인기있는 답변 의 링크 된 웹 페이지 작성자 로서이 간단한 도우미 함수의 마지막 버전을 추가하고 싶습니다. 훨씬 더 견고합니다.

내가 사용하는 json_encode()변수 유형이 아닌 필요한 경우에 대한 검사를하고도 프레임 워크의 문제를 해결하기 위해 버퍼를 추가 할 수 있습니다. 의 반품 또는 과다 사용이 없습니다 header().

/**
 * Simple helper to debug to the console
 *
 * @param $data object, array, string $data
 * @param $context string  Optional a description.
 *
 * @return string
 */
function debug_to_console($data, $context = 'Debug in Console') {

    // Buffering to solve problems frameworks, like header() in this and not a solid return.
    ob_start();

    $output  = 'console.info(\'' . $context . ':\');';
    $output .= 'console.log(' . json_encode($data) . ');';
    $output  = sprintf('<script>%s</script>', $output);

    echo $output;
}

용법

// $data is the example variable, object; here an array.
$data = [ 'foo' => 'bar' ];
debug_to_console($data);`

결과 스크린 샷

또한 훨씬 쉽게 이해할 수있는 이미지로 간단한 예를 들어보십시오.

여기에 이미지 설명을 입력하십시오