2013-08-14 2 views
1

Я создал календарь с его данными, хранящимися в текстовом файле. На данный момент я могу редактировать только одну строку/день одновременно, но мне хотелось бы отредактировать много дней (например, с 15-го сентября до 19-го сентября). Как это сделать?php - fwrite edit from line X to line X

Мой текстовый файл с данными выглядит следующим образом (с идентификатором $ id от 1 до 31), а $ exp - это контент, который я редактирую.

 $id|$exp|$color|$color2 

И файл PHP позволяет редактировать выглядит следующим образом:

 $month_file = $file . ".txt"; 
     $month_db = file("$month_file"); 
     $call = fopen("$month_file","w"); 

     foreach($month_db as $month_line) { 
      $month_line_arr = explode("|",$month_line); 
      $month_line_id = $month_line_arr[0]; 
     if($month_line_id == $id) { 
     fwrite($call,"$month_line_arr[0]|$exp|$color|$color2\n"); 
     }else { 
     fwrite($call,"$month_line"); 
     } 
     } 


     fclose($call); 

ответ

1

Изменить

if($month_line_id == $id) { 

к:

if ($month_line_id >= $min_id && $month_line_id <= $max_id) { 

где $min_id и $max_id содержат 15 и 19 в вашем примере.

BTW, вы можете использовать fgetcsv(), чтобы прочитать строку и разбить ее на столбцы за один шаг, а затем fputcsv(), чтобы написать ее обратно таким образом.

+0

Спасибо, он отлично работает сейчас! Я не знал о функции fgetcsv(), я посмотрю на нее =) – Junhee