我想检查我的数据库中是否有 url。我选择fopen
,但是我从我的数据库中测试了 30 行,这将花费将近 20 秒。有什么办法可以提高效率吗?谢谢。
<?php
$start_t = microtime(true);
//connect database and select query
while ($row = mysql_fetch_array($result)){
//$url = 'http://www.google.com'; //not test from database, but a google.com, one url will cost 0.49 seconds.
$url = $row['url'];
$res = @fopen($url, "r ");
if($res){
echo $row['url'].' yes<br />';
}else{
echo $row['url']. ' no<br />';
}
}
$end_t = microtime(true);
$totaltime = $end_t-$start_t;
echo "<br />".$totaltime." s";
?>
最佳答案
尝试使用比fopen
更快的fsockopen
<?php
$t = microtime(true);
$valid = @fsockopen("www.google.com", 80, $errno, $errstr, 30);
echo (microtime(true)-$t);
if (!$valid) {
echo "Failure";
} else {
echo "Success";
}
?>
输出:
0.0013298988342285
关于php url 检查可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6357371/