我的数据库中有很多链接,但很多链接都坏了。 现在,我将其用于循环获取断开的链接:
$r = 0;
for($i=1;$i<10000;$i++){
$sqlt1 = mysqli_query($conn, "SELECT * FROM links WHERE id = '".$i."'");
while ($film = mysqli_fetch_array($sqlt1))
{
$id = $film['id'];
$link = $film['filmlink'];
$title = $film['filmtitle'];
$source = $film['source'];
}
$string = file_get_contents($link);
$array = array('not found', 'deleted', 'Has Been Removed', '%not be loaded%', '%create video code', 'Conversion stage:');
if($id == "")
{}
else{
if($string == "")
{
$result = "bad";
echo $id." <a href='$link' target='_balnk'>".$title."</a> ".$source." link ".$result."<br>";
mysqli_query($conn, "DELETE FROM links WHERE id = '".$id."'");
$r++;
}
elseif (strposa($string, $array, 1)) {
$result = "bad";
echo $id." <a href='$link' target='_balnk'>".$title."</a> ".$source." link ".$result."<br>";
mysqli_query($conn, "DELETE FROM links WHERE id = '".$id."'");
$r++;
}
else{
$result = "good";
}
}
}
echo "All bad links: ".$r;
但是这种方式非常慢,通常会出现超时错误。 如何更快地分析链接?
答案 0 :(得分:1)
最好使用例如node.js进行异步检查
您必须编写与PHP中类似的检查,但是要以异步方式进行-您可以将node.js直接连接到数据库
或者您可以通过例如PUT方法将每个链接状态发送到PHP服务器-但是您会 必须为page.com/link/{id}设置API端点并对其进行处理。