создание множества файлов одним скриптом

RigVan

Постоянный член клуба
создание множества файлов одним скриптом

Есть следующий код, который по идее должен брать данные из текстового файла file.txt записи и на основе их создавать файлы ссылок (для папки Избранное в Win на IE). Сам скрипт, можно сказать, состоит из двух частей: 1) цикла, который проходит, построчно "file.txt".
2) скрипта который должен создавать файлы и записывать в него содержимое.
По отдельности и то и другое работает, но вместе ни как... Уже часов 20 парюсь безрезультатно... Прошу о помощи!!!

Вот сам скрипт.
<?
$file_array = file("file.txt");
if(!file_array)
{
echo "(&#206;&#248;&#232;&#225;&#234;&#224; &#238;&#242;&#234;&#240;&#251;&#242;&#232;&#255; &#244;&#224;&#233;&#235;&#224;)";
}
else
{
for($i=0; $i < count($file_array); $i++)
{

$namepage = "$file_array[$i]";
$namepage1 = "$namepage.url";
echo "<br>$namepage<br>";
echo "<br>$namepage1<br>";
$part1 =
<<<HERE
[DEFAULT]
BASEURL=http://www.
HERE;
# &#241;&#238;&#231;&#228;&#224;&#184;&#242;&#241;&#255; &#241;&#241;&#251;&#235;&#234;&#224; &#237;&#224; &#241;&#224;&#233;&#242;
$linkpage = "$namepage.ru/
";
# &#226;&#242;&#238;&#240;&#224;&#255; &#247;&#224;&#241;&#242;&#252; &#244;&#224;&#233;&#235;&#224;
$part2 =
<<<HERE
[InternetShortcut]
URL=http://www.
HERE;

#&#241;&#224;&#236; &#234;&#238;&#237;&#242;&#229;&#237;&#242;
$txt = "$part1$linkpage$part2";
echo "$txt$linkpage <br>";
$file = fopen ("$namepage1", "w");
fputs ($file , $txt.$linkpage);
fclose ($file);

}
}
?>
 

JIeoH

Guest
RigVan
Я 20 сек читал так и не понел что тебе надо!
 

RigVan

Постоянный член клуба
sakon
... Попробую

<?
# получение массива из file.txt
$file_array = file("file.txt");
if(!file_array)
{
echo "(Ошибка открытия файла)";
}
else
{
for($i=0; $i < count($file_array); $i++)
{
# присваиваю переменной $namepage значение "очередной" строки (строка состоит из одного слова)
$namepage = "$file_array[$i]";
# первая половина "тела" файла
$part1 =
<<<HERE
[DEFAULT]
BASEURL=http://www.
HERE;
# создаётся ссылка на сайт (к ключевому слову обозначения сайта добавляется зона .ru)
$linkpage = "$namepage.ru/";
# вторая половина "тела" файла
$part2 =
<<<HERE
[InternetShortcut]
URL=http://www.
HERE;
#все части "тела" файла объединяется
$txt = "$part1$linkpage$part2";
# создается собствено сам файл
$file = fopen ("$namepage", "w");
fputs ($file , $txt.$linkpage);
fclose ($file);
}
}
?>


sakon, так лучше?

-~{}~ 02.01.06 21:04:

JIeoH

мне нужно, чтобы скрипт создавал множество файлов, с именами определенными в массиве, и "наполнял" их содержанием....
Я сейчас понятно изъясняюсь? :)
 

RigVan

Постоянный член клуба
JIeoH
Ты издеваешся над несчастным RigVan!!!
Еще раз объясняю:
Есть текстовой файл (file.txt), в котором в столбик записаны
избранные ссылки (так-как попадают они в файл из сторонней программы, то сайт "www.ya.ru" записывается как "ya" и т.д.)
Нужно для каждого слова (которое одновременно является и строкой) из "file.txt" создать файл с вида "слово.url" (если винда есть под рукой погляди формат файлов-ссылок в папке "Избранное"), соответственно нужно создать и сам контент файла (который тоже зависит от "слова") Надеюсь теперь понятно объяснил ? :)

-~{}~ 02.01.06 21:17:

JIeoH
НЕ ТОРМОЗИ!!! ПРИЧЕМ ЗДЕСЬ HTML????
 

RigVan

Постоянный член клуба
sakon
не получается выполнить скрипт. Получаю ошибки

Warning: fopen(actresses ) [function.fopen]: failed to open stream: Invalid argument in C:\www\Bookmarks\createcikl2.php on line 31

Warning: fputs(): supplied argument is not a valid stream resource in C:\www\Bookmarks\createcikl2.php on line 32

Warning: fclose(): supplied argument is not a valid stream resource in C:\www\Bookmarks\createcikl2.php on line 33

85 комплектов ошибок, по числу закладок из file.txt.
 

sakon

П..и.н..ок
Все правильно. Не буду вдаваться в подробности твоего кода (пока привел его в читабельный вид - минут 20 прошло)
поправь строку
PHP:
$file = fopen (trim($namepage), "w");
 

RigVan

Постоянный член клуба
sakon Спасибо, друг!
Да действительно косяк у меня был. а как сделать, что бы задать расширения для вновь создаваемых файлов? например мне нужены файлы типа *.url? Пытался сделать что-то по типу
$urls = ".url";
$file = fopen (trim($namepage$url), "w");
но чего-то не получается...
Может в этом тоже подскажешь?
 

sakon

П..и.н..ок
Видимо такое слово как конкатенация ему не знаком.
 

RigVan

Постоянный член клуба
sakon и kruglov
Вы имеете в виду это:
$file = fopen (trim($namepage.$url), "w"); ?
или это:
$urls = "$namepage.url"; ?
$file = fopen (trim($urls), "w");
Оба варианта ничего не решают...

Если знаете ответ, подскажите, не мучайте...
 

RigVan

Постоянный член клуба
sakon
Спасибо, друг!
Проблема, твоими стараниями решена!
Был я рядом, проставил бы пиво, ну а так большое человеческое спасибо!
 

sakon

П..и.н..ок
Совет.
Убери из цикла эти строки
PHP:
$part1 =
<<<HERE
[DEFAULT]
BASEURL=http://www.
HERE;
и

PHP:
$part2 =
<<<HERE
[InternetShortcut]
URL=http://www.
HERE;
 

RigVan

Постоянный член клуба
sakon
Зачем? Все работает! А строки эти мне просто неободимы...
Но судя по всему ты знаешь о чем говоришь... Может пояснишь тогда чем плохи эти строки.

С уважением.
 

sakon

П..и.н..ок
Определи эти записи в начале скрипта, вне цикла. Эти данные статичны и в течении работы не изменяются. Поэтому их надо вывести из тела цикла. (Типа - зачем их перезаписывать каждый проход цикла?)
 
Сверху