我有一个cron任务,可以扫描url,看看它们是否在线。我的问题是它从来没有完成844个网站。它将在260到300之间变化。
cron作业每30分钟调用一次这个php文件,但它从未完成我的完整列表。有没有什么我做得不对的地方来阻止循环完成任务?
// php file
//first part gets the csv file and reads the 844 sites
if (($handle = fopen("/public/csvs/" . $csv, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0, ",")) !== FALSE) {
$num = count($data);
for ($c = 0; $c < $num; $c++) {
$site = $data[$c];
$curl = curl_init();
curl_setopt_array( $curl, array(
CURLOPT_HEADER => true,
CURLOPT_NOBODY => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_URL => 'https://'.$site ) );
$headers = explode( "\n", curl_exec( $curl ) );
curl_close( $curl );
// gets the status of the URL then
fills it in the database.
$statushttp = $headers[0];
$mysqltime = date("Y-m-d H:i:s", $phptime);
//$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//$sql = $conn->prepare($sql);
$sql = "INSERT INTO csv (http_status,status,url,csv,related)
VALUES ('$statushttp','$status','$site','$csv',1)";
// use exec() because no results are returned
$conn->exec($sql);
//echo $site ." ".$statushttp."<br>";
//echo $statusCode."<br>";
}
}
}
1条答案
按热度按时间v64noz0r1#
在另一台服务器上尝试了这个,结果没有问题。