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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: file_put_contents.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Непонятное поведение команды file_put_contents.
yogeswar
Отправлено: 13 Марта, 2013 - 06:19:58
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Непонятное поведение команды file_put_contents.
1. Командой define я файлу repet.log присваиваю имя REPET_LOG:
define("REPET_LOG", "repet.log");
2. Переменной data1 присваиваю такую строку:
$data1 = «wasy1:wasy2:..........wasy35»;
3. С помощью команды file_put_contents я передаю данные от
переменной $data1 к переменной REPET_LOG:
file_put_contents(REPET_LOG, $data1, FILE_APPEND);
4. Далее в программе я часто использую (должен использовать)
переменную REPET_LOG. В частности, с помощью команды
file передаю данные из REPET_LOG файлу $orders:
$orders = file(REPET_LOG);

И вот теперь самое главное, я ожидаю что в переменной $orders - массив с одной ячейкой,
т. к. команда file_put_contents должна делать только одну строку, а на самом деле
команда file_put_contents сделала текстовой файл с двумя строками, а значит массив
$orders стал с двумя ячейками, чего быть (как я читал) не должно.
Если в $data1 будет более короткая строка, например $data1 = «wasy1:wasy2:..........wasy18»,
тогда команда file_put_contents делает однострочный текстовой файл. Т.е. работает правильно.
Теперь вопрос: как сделать, чтобы команда file_put_contents сделала однострочный
текстовой файл, или, если это непоправимо, как из массива с двумя ячейками
($data1[0] и $data1[1]) сделать массив с одной ячейкой: $data[0]. Т.е. В нем будут
все данные из $data1[0] и $data1[1].
Заранее извиняюсь, если где-то писал не профессионально или не логично.
Я начинающий...

(Отредактировано автором: 13 Марта, 2013 - 06:25:38)

 
 Top
LIME
Отправлено: 13 Марта, 2013 - 06:43:02
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




ты где-то оставляешь в данных перенос строки
кстати file() разбивает на строки оставляя в конце символ переноса
возможно в этом прячется "феномен"
 
 Top
yogeswar
Отправлено: 13 Марта, 2013 - 06:47:23
Post Id


Гость


Покинул форум
Сообщений всего: 105
Дата рег-ции: Сент. 2012  
Откуда: Екатеринбург


Помог: 0 раз(а)




Спасибо LIME
Буду пробовать и думать.
(Добавление)
Спасибо большое LIME
Твой совет с командой trim сразу помог. Спасибо!!!
Скажи, как ты так знаешь все ньюансы? Мне бы так!
Может быть у тебя есть файлик, где нормально описаны команды PHP?
Непонятно, как мне, без всяких курсов, спокойно дома всем овладеть?
Неплохо бы ты дал по этому поводу совет.

(Отредактировано автором: 13 Марта, 2013 - 07:04:35)

 
 Top
LIME
Отправлено: 13 Марта, 2013 - 08:24:09
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




с радостью дам советы раз просишь:
0. совет 1
1. совет 2
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB