Меня терзают смутные сомнения, что ТСу файл хочется создать на компьютере пользователя. 3 раза нет. На сервере - 3 раза да.
Создать файл я пытался именно на сервере. Теперь проблема, как записать в этот файл содержимое массива в столбик, а не в длинную строку: пытался записывать в ранее созданный пустой, файл в цикле? Итог: получена только последняя строка массива. Скрипт такой: $base = scandir('images/'.$_GET[gal]); for($l = 1; $l <= count($base); $l++) { $in = strpos($base[$l], '.jpg');//находим расширение .jpg if($in != '')//если оно присутствует { $path = $_SERVER['DOCUMENT_ROOT']."/main/images/".$_GET[gal]."/base.txt"; file_put_contents($path, $base[$l]."\r\n"); } }
file_put_contents используется для единичного добавления данных в файл. Эта функция на самом деле является комбинацией fopen+fwrite+fclose. При файле большого объема будет заметно падение производительности в вашем скрипте. strpos возвращает FALSE в случае ненахождения подстроки. FALSE - это FALSE, оно не равно '', поэтому сравнивать так нельзя. Читайте мануал strpos $path зачем задали в цикле? Он что меняется от итерации к итерации? PHP: <?php $base = scandir('images/'.$_GET[gal]); $path = $_SERVER['DOCUMENT_ROOT']."/main/images/".$_GET[gal]."/base.txt"; $file_s = fopen($path, "a+"); for($l = 1; $l <= count($base); $l++) { if(strpos($base[$l], '.jpg') === true) { fwrite($file_s, $base[$l]."\r\n"); } } fclose($file_s); ?>
Капец. Чтобы записать содержимое массива в столбик, надо: PHP: <?php $array=array('a','b','c','d','e','f','g'); foreach ($array as $value) { $buff.=$value."\r\n"; } $fp=fopen('file.txt','w'); fwrite($fp,$buff); ?> А ты по-ходу, выдрал кусок кода из какого-то движка и не знаешь зачем он нужен.