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 :: Версия для печати :: При создание файла выдает ошибку
Форумы портала PHP.SU » » Вопросы новичков » При создание файла выдает ошибку

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

1. tatuskaa - 09 Августа, 2011 - 10:40:56 - перейти к сообщению
Задача примерна такая:
- Прочитать содержимое одного файла(там заготовка шаблона для все страниц);
- Прочитать содержимое второго файла где хранятся имена будущих файлов вот в таком виде:
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


Но первый файл почему правильно создается, а все остальные не хотят в чем проблема кто подскажет ? Уже устал искать причину..
2. illy - 09 Августа, 2011 - 10:59:35 - перейти к сообщению
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. ?>
3. tatuskaa - 09 Августа, 2011 - 11:03:44 - перейти к сообщению
Тоже самое получается

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

Warning: fclose() expects parameter 1 to be resource, boolean given in
4. illy - 09 Августа, 2011 - 11:07:37 - перейти к сообщению
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. ?>

(Добавление)
Если прям на сайте в интернете тестишь, то может из-за прав не создаёт файл
5. tatuskaa - 09 Августа, 2011 - 15:28:35 - перейти к сообщению
illy - Все проблема решена, мой косяк был в файле - spisok-zaprosov-tr-php-r.txt
У меня запросы были каждый с новой строки, когда разбивался все в массив видимо и перевод на новую строку тож туда записывался и в итоге он не мог создать все после первого элемента массива который был без перевода на новую строку.

Спасибо за помощь.
6. illy - 09 Августа, 2011 - 16:20:08 - перейти к сообщению
Видимо даже 2 перевода строки было в конце Ха-ха
так как у меня 1 перевод в конце был, но считал всё норм Хорошо
Ну рад был помочь.

 

Powered by ExBB FM 1.0 RC1