>백엔드 개발 >PHP 튜토리얼 >PHP에서 컬이 false를 반환하는 문제를 해결하는 방법은 무엇입니까? (예제 설명)

PHP에서 컬이 false를 반환하는 문제를 해결하는 방법은 무엇입니까? (예제 설명)

不言
不言앞으로
2019-01-03 10:06:393313검색

이 글에서는 컬을 사용하면서 겪게 되는 문제에 대한 해결책을 소개합니다. 그것이 모두에게 도움이 되기를 바랍니다.

먼저 캡슐화된 컬 함수를 살펴보겠습니다

function request_post($url = '', $param = '') {
    if (empty($url) || empty($param)) {
        return false;
    }
    $postUrl = $url;
    $curlPost = $param;
    $curl = curl_init();//初始化curl
    curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
    curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
    curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
    curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);//提交的参数
    $data = curl_exec($curl);//运行curl
    curl_close($curl);
    
    return $data;
}

호출되면 반환 결과는 bool(false)입니다bool(false)
我们在curl_exec函数前面通过curl_error($curl)获取错误也是 string(0) "" 空字符串。

最后发现自己调用的api的接口地址是ssl协议的,然后加上下面两个就可以了

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

如果curl请求的地址中含有空格也会返回false的,这块也要格外注意

之前还遇到过一个返回false打印curl_error($curl)curl_error(<code>curl_exec 앞에 $를 전달합니다) code> 함수 컬)얻어진 오류는 string(0) "" 빈 문자열이기도 합니다.

드디어 내가 호출한 API의 인터페이스 주소가 ssl 프로토콜이라는 것을 확인하고 다음 두 가지를 추가했습니다.

string(39) "Problem (2) in the Chunked-Encoded data" bool(false)
🎜curl에 공백이 포함되어 있습니다. <code>false도 반환됩니다. 이전에 false를 반환하고 curl_error($curl)를 사용하여 오류를 얻으려면 다음과 같습니다🎜<pre class="brush:php;toolbar:false;">//CURL_HTTP_VERSION_1_0 (强制使用 HTTP/1.0) //CURL_HTTP_VERSION_1_1 (强制使用 HTTP/1.1)。 curl_setopt($curlp, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);</pre>🎜이 오류에 대한 해결책은 다음 문장을 추가하여 컬이 사용하는 HTTP 프로토콜 버전을 설정하는 것입니다🎜rrreee

위 내용은 PHP에서 컬이 false를 반환하는 문제를 해결하는 방법은 무엇입니까? (예제 설명)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제