복붙노트

PHP - 디버깅 컬

PHP

PHP - 디버깅 컬

나는 그것을 보내기 전에 요청의 게시물 필드가 무엇인지보고 싶습니다. (디버깅 목적으로).

내가 사용하고있는 PHP 라이브러리 (클래스)는 이미 만들어져 있으므로 (나), 이해하려고 노력하고있다.

내가 말할 수있는 한 curl_setopt ()를 사용하여 헤더와 같은 다른 옵션을 설정 한 다음 curl_exec ()를 사용하여 요청을 보냅니다.

게시물 필드가 전송되는 것을 확인하는 방법에 대한 아이디어?

해결법

  1. ==============================

    1.

    CURLOPT_VERBOSE 옵션을 활성화 할 수 있습니다.

    curl_setopt($curlhandle, CURLOPT_VERBOSE, true);
    

    CURLOPT_VERBOSE가 설정되면 출력은 STDERR 또는 CURLOPT_STDERR을 사용하여 지정된 파일에 기록됩니다. 출력은 매우 유익합니다.

    tcpdump 또는 wireshark를 사용하여 네트워크 트래픽을 볼 수도 있습니다.

  2. ==============================

    2.

    CURLOPT_VERBOSE 옵션을 활성화하고 해당 정보를 (임시) CURLOPT_STDERR에 기록 할 수 있습니다.

    // CURLOPT_VERBOSE: TRUE to output verbose information. Writes output to STDERR, 
    // or the file specified using CURLOPT_STDERR.
    curl_setopt($handle, CURLOPT_VERBOSE, true);
    
    $verbose = fopen('php://temp', 'w+');
    curl_setopt($handle, CURLOPT_STDERR, $verbose);
    

    curl이 요청을 한 후에 읽을 수 있습니다.

    $result = curl_exec($handle);
    if ($result === FALSE) {
        printf("cUrl error (#%d): %s<br>\n", curl_errno($handle),
               htmlspecialchars(curl_error($handle)));
    }
    
    rewind($verbose);
    $verboseLog = stream_get_contents($verbose);
    
    echo "Verbose information:\n<pre>", htmlspecialchars($verboseLog), "</pre>\n";
    

    (원래 비슷한 대답을했지만 관련 질문에서 더 연장되었습니다.)

    마지막 요청에 대한 메트릭과 같은 자세한 정보는 curl_getinfo를 통해 사용할 수 있습니다. 이 정보는 컬 요청 디버깅에도 유용 할 수 있습니다. 사용 예를 들어, 일반적으로 그것을 함수로 래핑 할 것이다 :

    $version = curl_version();
    extract(curl_getinfo($handle));
    $metrics = <<<EOD
    URL....: $url
    Code...: $http_code ($redirect_count redirect(s) in $redirect_time secs)
    Content: $content_type Size: $download_content_length (Own: $size_download) Filetime: $filetime
    Time...: $total_time Start @ $starttransfer_time (DNS: $namelookup_time Connect: $connect_time Request: $pretransfer_time)
    Speed..: Down: $speed_download (avg.) Up: $speed_upload (avg.)
    Curl...: v{$version['version']}
    EOD;
    
  3. ==============================

    3.

    다음은 동일한 코드를 사용하는 간단한 코드입니다.

       curl_setopt($ch, CURLOPT_VERBOSE, 1);
       curl_setopt($ch, CURLOPT_STDERR, $fp);
    

    여기서 $ fp는 오류를 출력하는 파일 핸들입니다. 예 :

       $fp = fopen(dirname(__FILE__).'/errorlog.txt', 'w');
    

    (http://curl.haxx.se/mail/curlphp-2008-03/0064.html에서 읽기)

  4. ==============================

    4.

    PHP 오류 출력에 직접 작성하여 훨씬 간단한 방법입니다.

    curl_setopt($curl, CURLOPT_VERBOSE, true);
    curl_setopt($curl, CURLOPT_STDERR, fopen('php://stderr', 'w'));
    
  5. ==============================

    5.

    CURL 요청에 대한 정보를 얻으려면 다음을 수행하십시오.

    $response = curl_exec($ch);
    
    $info = curl_getinfo($ch);
    var_dump($info);
    
  6. from https://stackoverflow.com/questions/3757071/php-debugging-curl by cc-by-sa and MIT lisence