[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: echo fread( $fp, filesize...
Евгений Щукин
Добрый день!
Есть файл, из которого правильно выводится информация функцией fgets.
Но при использовании другой функции вылазят две ошибки

Warning: filesize() [function.filesize]: stat failed for DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt in /home/u389738335/public_html/vieworders.php on line 31

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/u389738335/public_html/vieworders.php on line 31

Хочу добиться повторного вывода той же информации другим способом. Где ошибка?
Заранее спасибо!

<?php 			  
@
$fp = fopen ( "DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt", "r" );

if ( !$fp )
{
echo "<p><strong><b>Файл с информацией не найден. Пожалуйста, повторите попытку позже.</b></strong></p></body></html>";
exit;
}

while (!feof ( $fp )) //feof определяет конец файла
{
/* fget - файл читаем построчно. 100 - макс количество байт. Похожая функция fgetss() тоже читает построчно, но удаляет при чтении чужой php- и html-код и поэтому повышает безопасность*/
$zapisat_v_file = fgets ( $fp, 100);
echo $zapisat_v_file."<br>";
}
fclose( $fp );

//Другой способ вывода информации из файла. Функция fread читает весь файл, а не строку
$fp = fopen ( "DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt", "r" );
echo fread( $fp, filesize("DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt" )) ; //filesize указывает размер файла
fclose ( $fp );

?>
walerus
echo fread( $fp, filesize( $_SERVER["DOCUMENT_ROOT"] . "DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt" )) ; //filesize указывает размер файла
McLotos
Цитата (Евгений Щукин @ 19.01.2015 - 16:19)
@ $fp

порно?

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
McLotos
Проще сделать так
$file = file(тут адрес);
На выходе имеем массив.
С ним и прыгаем дальше как угодно.
$file = 'file.txt';

if(!file_exists($file))
{echo 'Файла не существует';}
else{
$file = file($file);
//а дальше что больше нравится
foreach($file as $string)
{echo $string; }

//или
for($i=0;$i<count($file);$i++)
{echo $file[$i];}
}


Набросал прямо тут, поэтому х.з. будет работать или нет =)

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Гость_Евгений Щукин
Цитата (walerus @ 20.01.2015 - 09:55)
echo fread( $fp, filesize( $_SERVER["DOCUMENT_ROOT"] . "DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt" )) ; //filesize указывает размер файла

walerus, спасибо за попытку помочь. Ничего не получилось. Добавил в нужном месте "Вывод информации функцией fread" и получил вот это:


08:55, 19 January
Новый заказ:
57 дисков,
r шин,
3 дверей,
Всего 60 деталей.
Заказ на сумму: 5712 рублей.
Адрес:


Вывод информации функцией fread
Warning: filesize() [function.filesize]: stat failed for /home/u389738335/public_htmlDOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt in /home/u389738335/public_html/vieworders.php on line 32

Warning: fread() [function.fread]: Length parameter must be greater than 0 in /home/u389738335/public_html/vieworders.php on line 32
Guest
Цитата (McLotos @ 20.01.2015 - 09:59)
Проще сделать так
$file = file(тут адрес);
На выходе имеем массив.
С ним и прыгаем дальше как угодно.

McLotos, я полный чайник) Для меня это пока слишком сложно. Например, не понял, должно ли имя файла включать и путь к файлу. Ладно, не заморачивайся. Спасибо!

А "порно" - это что жаргон какой-то?
"@ $fp" - в данном случае идет подавление сообщения об ошибке, а заодно экономится строка кода типа "if(!file_exists($file))". Считаешь, что так неправильно?
McLotos
Цитата (Guest @ 20.01.2015 - 15:17)
Считаешь, что так неправильно?

категорически.
Нельзя глушить ошибки, их нужно обрабатывать.
Цитата (Guest @ 20.01.2015 - 15:17)
Например, не понял, должно ли имя файла включать и путь к файлу

Конечно

_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки
Guest
Ерунда какая-то получилась. Вот страница, на которую выводится инфа http://tomson.zz.mu/vieworders.php

Почему я на выходе сначала получаю нормальное считывание, а потом "Файл не существует"?


<?php
@
$fp = fopen ( "DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt", "r" );

if ( !$fp )
{
echo "<p><strong><b>Файл с информацией не найден. Пожалуйста, повторите попытку позже.</b></strong></p></body></html>";
exit;
}

while (!feof ( $fp )) //feof определяет конец файла
{
/* fget - файл читаем построчно. 100 - макс количество байт. Похожая функция fgetss() тоже читает построчно, но удаляет при чтении чужой php- и html-код и поэтому повышает безопасность*/
$zapisat_v_file = fgets ( $fp, 100);
echo $zapisat_v_file."<br>";
}
fclose( $fp );

//Другой способ вывода информации из файла. Функция fread читает весь файл, а не строку
$fp = fopen ( "DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt", "r" );
echo fread( $fp, filesize("DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt" )) ; //filesize указывает размер файла
fclose ( $fp );



$file = fopen ( "DOCUMENT_ROOT/../vse_zakazy/vse_zakazy/zakazy.txt", "r" );
if(!file_exists($file))
{echo 'Файла не существует';}
else{
$file = file($file);
//а дальше что больше нравится
foreach($file as $string)
{echo $string; }

//или
for($i=0;$i<count($file);$i++)
{echo $file[$i];}
}


?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.