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 :: При создание файла выдает ошибку

 PHP.SU

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


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

> Описание: При создание файла выдает ошибку типа: failed to open stream: Invalid argument, fwrite() expects parameter 1 to be resource, boolean
tatuskaa
Отправлено: 09 Августа, 2011 - 10:40:56
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Авг. 2011  


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




Задача примерна такая:
- Прочитать содержимое одного файла(там заготовка шаблона для все страниц);
- Прочитать содержимое второго файла где хранятся имена будущих файлов вот в таком виде:
stranita1.php#
stranita2.php#
stranita3.php#
- После того как получено содержимае 2 файла мы разбиваем его explode
- После организуем цикл FOR для того что бы создать N количество файлов с разными названиями из файла номер два и одинаковым содержанием из первого фаила
Вот код который получился:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $path = 'pages/';
  4. // читаем будущие имена фиалов
  5. $filename = "spisok-zaprosov-tr-php-r.txt";
  6. $handle = fopen($filename, "r");
  7. $arrayP = fread($handle, filesize($filename));
  8. fclose($handle);
  9. $filenamePhp = explode('#',$arrayP);
  10. $contfilenamePhp =  count ($filenamePhp);
  11. // получает содержимое файла в строку
  12. $filename = "zag.txt";
  13. $handle = fopen($filename, "r");
  14. $contents = fread($handle, filesize($filename));
  15. fclose($handle);
  16. // цикл создание всех фаилов
  17. for ($i = 0; $i<=$contfilenamePhp; $i++){
  18. $filename = $path . $filenamePhp[$i];
  19. $handle = fopen($filename, "a");
  20. fwrite($handle, $contents);
  21. fclose($handle);
  22. }
  23. ?>
  24.  

После запуска скрипта создается только один файл и далее error вот такого рода:

Warning: fopen(pages/ stranita2.php) [function.fopen]: failed to open stream: Invalid argument in C:\Xampp\htdocs\fread\index.php on line 18

Warning: fwrite() expects parameter 1 to be resource, boolean given in C:\Xampp\htdocs\fread\index.php on line 19

Warning: fclose() expects parameter 1 to be resource, boolean given in C:\Xampp\htdocs\fread\index.php on line 20


Но первый файл почему правильно создается, а все остальные не хотят в чем проблема кто подскажет ? Уже устал искать причину..
 
 Top
illy
Отправлено: 09 Августа, 2011 - 10:59:35
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. $p='pages/';
  3. $cont=file_get_contents('spisok-zaprosov-tr-php-r.txt');
  4. $f=file('zag.txt');
  5. for($n=0;$n!=sizeof($f);$n++){
  6. $u=explode('#', $f[$n]);
  7. $fp=fopen($p.$u[0],'w');
  8. fputs($fp,$cont);
  9. fclose($fp);
  10. }
  11. ?>

(Отредактировано автором: 09 Августа, 2011 - 11:01:27)



-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
tatuskaa
Отправлено: 09 Августа, 2011 - 11:03:44
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Авг. 2011  


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




Тоже самое получается

Warning: fputs() expects parameter 1 to be resource, boolean given in

Warning: fclose() expects parameter 1 to be resource, boolean given in
 
 Top
illy
Отправлено: 09 Августа, 2011 - 11:07:37
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


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




PHP:
скопировать код в буфер обмена
  1. <?
  2. $p='pages/';
  3. $cont=file_get_contents('spisok-zaprosov-tr-php-r.txt');
  4. $f=file('zag.txt');
  5. for($n=0;$n!=sizeof($f);$n++){
  6. $u=explode('#', $f[$n]);
  7. $fp=fopen($p.$u[0], 'a+');
  8. fclose($fp);
  9. $fp=fopen($p.$u[0],'w');
  10. fputs($fp,$cont);
  11. fclose($fp);
  12. }
  13. ?>

(Добавление)
Если прям на сайте в интернете тестишь, то может из-за прав не создаёт файл


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 Top
tatuskaa
Отправлено: 09 Августа, 2011 - 15:28:35
Post Id



Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Авг. 2011  


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




illy - Все проблема решена, мой косяк был в файле - spisok-zaprosov-tr-php-r.txt
У меня запросы были каждый с новой строки, когда разбивался все в массив видимо и перевод на новую строку тож туда записывался и в итоге он не мог создать все после первого элемента массива который был без перевода на новую строку.

Спасибо за помощь.
 
 Top
illy
Отправлено: 09 Августа, 2011 - 16:20:08
Post Id



Участник


Покинул форум
Сообщений всего: 1117
Дата рег-ции: Июль 2011  
Откуда: от верблюда)


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




Видимо даже 2 перевода строки было в конце Ха-ха
так как у меня 1 перевод в конце был, но считал всё норм Хорошо
Ну рад был помочь.


-----
Всё гениальное - просто
И ещё проще, если ты - индиго
 
 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