使用 while 循环将 fopen 转换为 curl

Converting fopen to curl using while loop

大家好,我创建了一个函数 (PHP),它主要打开一个文本文件,其中包含一个日期列表,每个日期单独占一行。然后我用 while look 浏览文件的每一行,看看列出的日期是否与今天匹配,或者如果没有匹配则获取下一个最接近今天的日期。问题是我放置函数的主机不支持 fopen,所以我需要将它转换为 curl。我看过一些例子,但只能找到一种方法来使用 curl 获取内容,而不是逐行检查你能帮我把它转换成 curl 吗?这是我的代码:

function service_dates() {

$file_path .= "/dates.txt"; 
$handle = fopen($file_path, "r");

if ($handle) {
    while (($line = fgets($handle)) !== false) {
        $new_time = strtotime( $line );
        $time_now = strtotime(date("d-m-Y", gmmktime()));

        if ($time_now == $new_time) {
            $next_date = date("D, jS M", $new_time);
            $status = "Operating a Service Today!";
            $statusid = 1;
            $returnstatus = array($status, $next_date, $statusid);
            return $returnstatus;           
        }

        if ($time_now <= $new_time) {
            $next_date = date("D, jS M", $new_time);
            $status = "Closed Today";
            $statusid = 2;
            $returnstatus = array($status, $next_date, $statusid);

            return $returnstatus;               
        }
    }

    fclose($handle);
} 
 else {
    echo "error";
  } 

}

您可以使用 explode 将数据拆分为单独的行并使用 foreach 循环遍历生成的数组:

foreach(explode("\n", $data_from_curl) as $line){
    ...
}

(如果您的文件使用 windows 换行符,请将“\n”替换为“\r\n”)