cURL&循环通过数组

时间:2013-07-10 19:38:05

标签: php loops curl foreach status

我正在尝试创建一个脚本,该脚本将循环使用包含各种文件名的数组,并使用cURL& '404'错误检测。换句话说,如果初始默认文件名称为'404',那么我将创建一个循环函数来循环遍历数组,同时仍然运行相同的cURL会话。当它检测到状态'200'时,它会停止循环&然后进入客户端发送的下一个值。我尝试过使用foreach(),但没有成功。这是我用作开头的代码。

<?php

if (isset($_POST['request'])) {
$req = $_POST['request'];
$url = $addr;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') {
echo $url;
}
curl_close($ch);                                
}

?>

1 个答案:

答案 0 :(得分:0)

if (isset($_POST['request'])) {
    $req = $_POST['request'];
    $url = $addr;
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_NOBODY, true);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);

    for ($retry = 1; $retry <= $retry_max; $retry++) {
        $ret= curl_exec($ch);
        preg_match("/^HTTP\/[01\.]+ ([0-9]{3}[A-Za-z\(\)\- ]+)/",$ret,$getcode);
        if (strcmp($getcode[1], '200 OK') === 0) {
            break;
        } 
        else {
          sleep(10);
        }
    }
    curl_close($ch);                                
}