Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сохранение file_put_contents()
Форумы портала PHP.SU » » Вопросы новичков » Сохранение file_put_contents()

Страниц (1): [1]
 

1. Sanek_OS9 - 11 Декабря, 2014 - 17:32:58 - перейти к сообщению
Здравствуйте, в общем дело такое, хочу сделать редактирование файла, его содержимое получаю так:
PHP:
скопировать код в буфер обмена
  1. $file = file(H . '/sys/languages/ukrainian/system.lng') ;
  2. foreach($file AS $key => $v){
  3.    /* код */
  4. }

Содержимое массива следуещее:
Array ( [0] => Имя = "Імя" [1] => Далее = "Далі" [2] => Логин = "Логін" [3] => Файлы = "Файли" [4] => Пароль = "Пароль" [5] => Женский = "Жін." [6] => Мужской = "Чол." )
Выбираю нужную строку дл редактирование через ключ и сохраняю файл через функцию file_put_contents().
PHP:
скопировать код в буфер обмена
  1.  
  2. $text = text::input_text($_POST['text']) ;
  3. $file[$key] = $text ;
  4. file_put_contents(H . '/sys/languages/ukrainian/system.lng', $file) ;

Но почему то строку которую редактировал объединяет со следующей и массив получается таков:
Array ( [0] => Имя = "Імя"Далее = "Далі" [1] => Логин = "Логін" [2] => Файлы = "Файли" [3] => Пароль = "Пароль" [4] => Женский = "Жін." [5] => Мужской = "Чол." )
Подскажите почему так Огорчение
В весь код таков:
PHP:
скопировать код в буфер обмена
  1. $file = file(H . '/sys/languages/ukrainian/system.lng') ;
  2.  
  3. if(isset($_GET['edit']) && array_key_exists($_GET['edit'], $file) && is_numeric($_GET['edit'])){
  4.         $key = (int) $_GET['edit'] ;
  5.        
  6.         if(isset($_POST['text'])){
  7.                 $text = text::input_text($_POST['text']) ;
  8.                 $file[$key] = $text ;
  9.                 file_put_contents(H . '/sys/languages/ukrainian/system.lng', $file) ;
  10.                 $doc->msg(__('Сохранено')) ;
  11.                 header('Refresh: 1; ?') ;
  12.                 exit ;
  13.         }
  14.        
  15.         $form = new form('?edit=' . $key) ;
  16.         $form->textarea('text', __('Текст'), $file[$key]) ;
  17.         $form->button(__('Изменить')) ;
  18.         $form->display() ;
  19.         exit ;
  20. }
  21.  
  22. $listing = new listing() ;
  23.  
  24. foreach($file AS $key => $v){
  25.         $post = $listing->post() ;
  26.         $post->title = $v ;
  27.         $post->url = '?edit=' . $key ;
  28. }
  29.  
  30. $listing->display() ;
2. Sanek_OS9 - 13 Декабря, 2014 - 16:14:11 - перейти к сообщению
неужели никто не знает в чем дело Не понял
3. andrewkard - 14 Декабря, 2014 - 22:12:02 - перейти к сообщению
Sanek_OS9
Попробуйте такой пример:
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Content-Type: text/html; charset=utf-8");
  3. $file = file('file.txt');
  4. echo '<pre>';print_r($file);echo '</pre><br />';
  5. $file[0]='Имя = "Ім\'я"'.PHP_EOL;
  6. echo '<pre>';print_r($file);echo '</pre><br />';
  7. file_put_contents('file.txt', $file) ;
  8. echo '<pre>';print_r(file('file.txt'));echo '</pre>';
  9.  

 

Powered by ExBB FM 1.0 RC1