我正在尝试创建一个脚本,该脚本将循环使用包含各种文件名的数组,并使用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);
}
?>
答案 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);
}