1 /**
2 * @param string $url 访问链接
3 * @param string $target 需要重试的标准: 返回结果中是否包含$target字符串
4 * @param int $retry 重试次数, 默认3次
5 * @param int $sleep 重试间隔时间, 默认1s
6 * @return bool|mixed curl返回结果
7 * desc 有重试功能的curlget
8 */
9 function curlGetRetry($url, $target, $retry=3, $sleep = 1)
10 {
11 $ch = curl_init();
12 curl_setopt($ch, CURLOPT_URL, $url);
13 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
14 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
15 curl_setopt($ch, CURLOPT_TIMEOUT, 5);
16 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 信任任何证书
17 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1); // 检查证书中是否设置域名(为0也可以,就是连域名存在与否都不验证了)
18
19 $output = curl_exec($ch);
20
21 while((strpos($jsonOutput, $target) === FALSE) && $retry--){ //检查$targe是否存在
22 sleep($sleep); //阻塞1s
23 $output = curl_exec($ch);
24 }
25 curl_close($ch);
26 return $output;
27 }