遇到 PHP 错误严重性:警告消息:fwrite():39 不是有效的流资源

A PHP Error was encountered Severity: Warning Message: fwrite(): 39 is not a valid stream resource

下面是我尝试将结果从数据库写入文本文件的代码。但我不断收到上述错误消息。我想这与语法有关,但我无法解决它。请分享您的解决方法。

     public function createfile(){

        $myfile = fopen("newfile.txt", "w") or die("Unable to open file!");

        $this->db->select('*');
        $this->db->from('crd_article_desc');
        $query = $this->db->get();
        $result=$query->result_array();         

    $txt ='';
    $counter = 1;                       
    foreach($result as $results){

    $vp_string = trim($results['article_title']);

    $vp_string = html_entity_decode($vp_string);

    $vp_string = strip_tags($vp_string);

    $vp_string = strtolower($vp_string);

    $vp_string = preg_replace('~[^ a-z0-9_.]~', ' ', $vp_string);

    $vp_string = preg_replace('~ ~', '-', $vp_string);

    $vp_string = preg_replace('~-+~', '-', $vp_string);

    $new_friendly_url = $vp_string; 
    echo $results['article_title'];
    $looptxt = $results['article_id']."-".$new_friendly_url."\n";

    $txt=$txt.$looptxt;

    fwrite($myfile,$txt);
    fclose($myfile);
}

如果我错了请纠正我,但在你的代码中

foreach($result as $results){

    [...]
    $txt=$txt.$looptxt;

    fwrite($myfile,$txt);
    fclose($myfile);
}

在我看来,您好像是在循环中关闭文件。在循环的第二次迭代中,您试图写入刚刚关闭的文件,这当然会失败。

我认为要解决此问题,您必须在 fwrite

之前关闭循环
foreach($result as $results){

    [...]
    $txt=$txt.$looptxt;
    }

    fwrite($myfile,$txt);
    fclose($myfile);
}