2017-02-14 14 views
1

Ниже приведен код, в котором я пытаюсь записать результаты из базы данных в текстовый файл. Но я продолжаю получать сообщение об ошибке, как указано выше. Я полагаю, что это что-то делает с синтаксисом, но я не могу его разрешить. Пожалуйста, поделитесь своим мнением о том, как это понять.Ошибка PHP. Серьезность: предупреждение: fwrite(): 39 не является допустимым ресурсом потока

 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

Поправьте меня, если я ошибаюсь, но в коде

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); 
} 
+0

Спасибо Paul. Отличный ответ! задача решена. – Pramod

+0

Рад, что я могу помочь –