Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Есть тут один вопрос.
 
 автор: pavelspon   (23.08.2005 в 21:06)   письмо автору
 
 

Товарищи програмисты подскажите еще зелёному но стремящемуся к высотам програмирования на PHP студенту!

При написании одного из первых своих скриптов столкнулся с вопросом в котором никак немогу разобраться.

Существуют 2 файла.
Первый arhiv.txt файл хранящий имена файлов.
Второй form.php должен бы создавать файл с именами из первого но этого не происходит

arhiv.txt

top.txt
lop.txt
sop.txt


form.php

<?
$arhiv=file("arhiv.txt");
$w=fopen($arhiv[0],"w");
if(file_exists("$arhiv[0]")){echo "<br>Файл существует"; }
else {echo "<br>ФайлА НЕ существует";}

$arhiv=file("arhiv.txt");
$w=fopen($arhiv[1],"w");
if(file_exists("$arhiv[1]")){echo "<br>Файл существует"; }
else {echo "<br>ФайлА НЕ существует";}

$arhiv=file("arhiv.txt");
$w=fopen($arhiv[2],"w");
if(file_exists("$arhiv[2]")){echo "<br>Файл существует"; }
else {echo "<br>ФайлА НЕ существует";}
?>

И вот по какой-то непонятной для меня причине два первых файла не создаются (top.txt и lop.txt), а вот третий создаёться (sop.txt).

   
 
 автор: isset   (23.08.2005 в 21:41)   письмо автору
 
   для: pavelspon   (23.08.2005 в 21:06)
 

Необходимо обрезать \r\n (или \n) в конце у имени файла функцией trim():

<?
$arhiv
=file("arhiv.txt");
$w=fopen(trim($arhiv[0]),"w");
if(
file_exists("$arhiv[0]")){echo "<br>Файл существует"; }
else {echo 
"<br>ФайлА НЕ существует";}

$arhiv=file("arhiv.txt");
$w=fopen(trim($arhiv[1]),"w");
if(
file_exists("$arhiv[1]")){echo "<br>Файл существует"; }
else {echo 
"<br>ФайлА НЕ существует";}

$arhiv=file("arhiv.txt");
$w=fopen(trim($arhiv[2]),"w");
if(
file_exists("$arhiv[2]")){echo "<br>Файл существует"; }
else {echo 
"<br>ФайлА НЕ существует";}
?>

Кстати, код можно сделать проще:

<?
$arhiv
=file("arhiv.txt");
foreach(
$arhiv as $fname) {
$w=fopen(trim($fname),"w");
if(
file_exists($fname)){echo "<br>Файл существует"; }
else {echo 
"<br>ФайлА НЕ существует";}
}
?>

   
 
 автор: pavelspon   (24.08.2005 в 00:14)   письмо автору
 
   для: isset   (23.08.2005 в 21:41)
 

Спасибо огромное сам никак не мог найти ошибку.
Ну вот откуда лишние пробелы появляються досихпор понять не могу.
В моём случае файл arhiv.txt заполняется из формы.
Я сам с клавbfnehs набираю имя файла вообще без всяких пробелов
например top.txt .
Подскажите на каком этапе появляются лишние пробелы из-за которых
приходится использовать ф-ию trim().

   
 
 автор: glsv (Дизайнер)   (24.08.2005 в 05:54)   письмо автору
 
   для: pavelspon   (24.08.2005 в 00:14)
 

>Ну вот откуда лишние пробелы
\r\n - это не пробелы - это символ перевода строки. Из формы приходят.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования