Выполнение операций над каждым элементом массива

1234

Новичок
Выполнение операций над каждым элементом массива

содержимое answer.txt:
да
нет
наверное

далеше скрипт:

PHP:
$content=file("answer.txt");    foreach($content as $value)  {  $fh4=fopen("answer/$value.txt","w+");   fwrite($fh4,$value);  }  fclose($fh4);
при выполнении пишет вот это:

Warning: fopen(answer/яю40 ): failed to open stream: Invalid argument in z:\home\localhost\www\poll\test.php on line 16

Warning: fwrite(): supplied argument is not a valid stream resource in z:\home\localhost\www\poll\test.php on line 17

Warning: fopen(answer/): failed to open stream: Permission denied in z:\home\localhost\www\poll\test.php on line 16

Warning: fwrite(): supplied argument is not a valid stream resource in z:\home\localhost\www\poll\test.php on line 17

Warning: fopen(answer/): failed to open stream: Permission denied in z:\home\localhost\www\poll\test.php on line 16

Warning: fwrite(): supplied argument is not a valid stream resource in z:\home\localhost\www\poll\test.php on line 17

Warning: fclose(): supplied argument is not a valid stream resource in z:\home\localhost\www\poll\test.php on line 19


А по идее должно создаваться 3 файла.
 

HraKK

Мудак
Команда форума
donflash
Иногда лучше жевать, чем говорить.
 

donflash

Вареник клуба
Warning: fopen(answer/): failed to open stream: Permission denied in z:\home\localhost\www\poll\test.php on line 16
------------------------------------------------------------------------
Могу подсказать хорошего специалиста по иностранному языку..:)
 

Solid

Drosera anglica
$content as $k=>$value
...
'answer/'.$k.'.txt'
А лучше используй БД. К примеру sqlite.

-~{}~ 06.12.06 20:22:

Тем более, зачем для каждого ответа создавать свой собственный файл?
 

HraKK

Мудак
Команда форума
Уху, я по 1 такой занимаюсь, развивают переферийное зрение, концентрацию скорость чтения, и осознания того что читаешь.
 

1234

Новичок
Как я понял нельзя создать файлы из-за того что их имена будут неккоректны:

Warning: fopen(answer/яю40 ): failed to open stream: Invalid argument in z:\home\localhost\www\poll\test.php on line 16

Но ведь в answer.txt содержится корректный текст?
 

1234

Новичок
Я вставляю print_r($content); после $content=file("answer.txt");

и получаю это:

Array ( [0] => яю40 [1] => =5B [2] => =025@=> )
 

Nogrogomed

Новичок
Прочитай свой скрипт 2 раза.
То что содержимое файла может быть русским - не значит, что имена файлов в системе могут быть русскими.
Почему ты открываешь 3 файла (в цикле), а закрываешь всего 1 (после цикла)?

И вообще: что должен делать твой скрипт?

-~{}~ 07.12.06 12:00:

Array ( [0] => яю40 [1] => =5B [2] => =025@=> )
А теперь проверь содержимое файла и его кодировку.
 

hermit_refined

Отшельник
Array ( [0] => яю40 [1] => =5B [2] => =025@=> )
Но ведь в answer.txt содержится корректный текст
одно из этих утверждений ложно.

как разберетесь - не забудьте [m]rtrim[/m] к $value применить.

-~{}~ 07.12.06 12:04:

Автор оригинала: Nogrogomed
Почему ты открываешь 3 файла (в цикле), а закрываешь всего 1 (после цикла)?
это у него по невнимательности, очевидно.
но это ни на что не влияет. совсем. хоть и некрасиво.
 

1234

Новичок
Всем спасибо все заработало! Теперь код выглядит так:

$content=file("answer.txt");

print_r($content);

foreach($content as $value)
{
$value=rtrim($value);
$fh4=fopen("answer/$value.txt","w+");
fwrite($fh4,$value);
fclose($fh4);}
 
Сверху