下面是我尝试将数据库中的结果写入文本文件的代码。但我一直收到上面的错误信息。我想这与语法有关,但我无法解决它。请与您分享如何弄明白。
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);
}
答案 0 :(得分:0)
如果我错了,请在我的代码中纠正我
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);
}