douqingnao9246
2014-07-22 13:14
浏览 75
已采纳

PHP,CURL:函数获取响应代码并返回变量

I have the following function:

function file_get_contents_curl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, random_user_agent());
    curl_setopt($ch, CURLOPT_HTTPHEADER, 'Content-type: text/plain');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}

I need to have some logic inside this function that if the response code of the URL is for example 404, then return null $data variable. I made an example of what I am looking for:

function file_get_contents_curl($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_USERAGENT, random_user_agent());
    curl_setopt($ch, CURLOPT_HTTPHEADER, 'Content-type: text/plain');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    $data = curl_exec($ch);

    if (empty($data) or (HTTP response code is 404)) {
        // some kind of an error happened
        die(curl_error($ch));
        curl_close($ch); 
        $data = null;
        return $data;
    } else {
        // everything  is ok
        return $data;

    }
}

图片转代码服务由CSDN问答提供 功能建议

我有以下功能:

  function file_get_contents_curl($  url){
 $ ch = curl_init(); 
 curl_setopt($ ch,CURLOPT_USERAGENT,random_user_agent()); 
 curl_setopt($ ch,CURLOPT_HTTPHEADER,'Content-type:text / plain'); 
 curl_setopt(  $ ch,CURLOPT_RETURNTRANSFER,1); 
 curl_setopt($ ch,CURLOPT_URL,$ url); 
 $ data = curl_exec($ ch); 
 curl_close($ ch); 
返回$ data; 
} \  n   
 
 

我需要在此函数中包含一些逻辑,如果URL的响应代码是例如404,则返回 null $ data 变量。 我做了一个我正在寻找的例子:

  function file_get_contents_curl($ url){
 $ ch = curl_init(); 
 curl_setopt($ ch,CURLOPT_USERAGENT,  random_user_agent()); 
 curl_setopt($ ch,CURLOPT_HTTPHEADER,'Content-type:text / plain'); 
 curl_setopt($ ch,CURLOPT_RETURNTRANSFER,1); 
 curl_setopt($ ch,CURLOPT_URL,$ url);  
 $ data = curl_exec($ ch); 
 
 if(empty($ data)或(HTTP响应代码为404)){
 //发生某种错误
 die(curl_error($ ch)  )); 
 curl_close($ ch);  
 $ data = null; 
返回$ data; 
} else {
 //一切正常
返回$ data; 
 
} 
} 
   \  n 
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • drghhp8706 2014-07-22 13:18
    已采纳
    function file_get_contents_curl($url) {
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_USERAGENT, random_user_agent());
                curl_setopt($ch, CURLOPT_HTTPHEADER, 'Content-type: text/plain');
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_URL, $url);
                $data = curl_exec($ch);
    
                if (empty($data) OR (curl_getinfo($ch, CURLINFO_HTTP_CODE == 404))) {
                        // some kind of an error happened
                        die(curl_error($ch));
                        curl_close($ch); 
                        $data = null;
                        return $data;
                    } else {
                        // everything  is ok
                        return $data;
    
                    }
    
            }
    
    点赞 打赏 评论
  • dtuqxb3884 2014-07-22 13:17

    use curl_getinfo($ch) before curl_close() called

    点赞 打赏 评论

相关推荐 更多相似问题