php curl get headers不起作用

ohfgkhjo  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(417)

我有一个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>";

        }

    }

}
v64noz0r

v64noz0r1#

在另一台服务器上尝试了这个,结果没有问题。

相关问题