Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: file_get_contents

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: и ее параметры
decss
Отправлено: 30 Января, 2008 - 02:12:52
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Возник вопрос касательно функции file_get_contents
У с ней связаны следующие параметры:
string filename, bool use_include_path, resource context, int offset и int maxlen
вопрос по последним двум:
int offset - смещение в строке на определенное количество байт
int maxlen - это длинна участка строки (после смещения, если оно указано)
пример:
CODE (text):
скопировать код в буфер обмена
  1. <?php ...
  2. $data = file_get_contents($url,false,null,1000,6000);
  3. echo(htmlspecialchars($data));
  4. ... ?>

открываем, к примеру, php файл (в котором явно больше 10к байтов) и, установив int offset = 2000 строка не обрезается и выдается ошибка: "Failed to seek to position 2000 in the stream in ..."
если же поставить 1000, то все смещается и работает нормально
в чем же дело?
надеюсь на ответ, заранее благодарю.

(Отредактировано автором: 30 Января, 2008 - 02:25:06)

 
 Top
valenok Модератор
Отправлено: 30 Января, 2008 - 12:17:43
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А вам не кажется что текст ошибки для данного кода должен быть немножко другой ?
И ещё обычно такая ошибка при выходе за пределы файла.
Проверьте пожалуйсте ошибку для написанного вами кода ещё раз и размер файла.


-----
Truly yours, Sasha.
 
My status
 Top
decss
Отправлено: 30 Января, 2008 - 14:56:05
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




Warning: file_get_contents() [function.file-get-contents]: stream does not support seeking in /home/users/b/.../al.php on line 9
Warning: file_get_contents() [function.file-get-contents]: Failed to seek to position 2000 in the stream in /home/users/.../al.php on line 9

вот полностью что пишет
а файл большего размера, в этом я уверен
 
 Top
valenok Модератор
Отправлено: 30 Января, 2008 - 15:53:39
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Цитата:
stream does not support seeking

С этого и надо было начинать.

Цитата:

$data = file_get_contents($url,false,null,1000,6000);
Failed to seek to position 2000


С каким потоком вы работаете?


-----
Truly yours, Sasha.
 
My status
 Top
decss
Отправлено: 30 Января, 2008 - 17:53:10
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




valenok пишет:
С каким потоком вы работаете?

эмм... Вы не сердитесь, но я не отвечу на Ваш вопрос... потому как не знаю = )
а скрипт прост: состоит из URL на *.php файл, оной функции открытия файла и вывода данных после открытия файла...
 
 Top
valenok Модератор
Отправлено: 30 Января, 2008 - 20:04:25
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




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


-----
Truly yours, Sasha.
 
My status
 Top
decss
Отправлено: 30 Января, 2008 - 21:04:17
Post Id


Новичок


Покинул форум
Сообщений всего: 16
Дата рег-ции: Янв. 2008  


Помог: 0 раз(а)




аааа...
CODE (text):
скопировать код в буфер обмена
  1. <?php
  2.         $url="http://www.php.su/forum/topic.php?forum=1&topic=717";
  3.         $data=file_get_contents($url,false,null,2000,1);
  4.         $data = htmlspecialchars($data);
  5.         echo($data);
  6. ?>

вот, к примеру так... 2000 - работает через раз, 5000 - вообще не работает.. 1000 - работает всегда

(Отредактировано автором: 30 Января, 2008 - 21:04:46)

 
 Top
valenok Модератор
Отправлено: 31 Января, 2008 - 22:22:42
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Оно пишет что смещение seeking для данного протокола не подходит.
Логически оно и правильно ..
Первые 1000 байт скрипт получает от сервера достаточно быстро поэтому смещение удаётся,
а если данные передаются более медленно то на момент смещение 2000 ный байт может быть ещё и не принят и смещение не удаётся.

Придётся вам читать всю страницу.
А если вы читаете документ находящийся на этом же сервере, то просто укажите относительный путь.
(Добавление)
Хотя может я где то ошибаюсь.
Хотя логика вроде бы есть.
Если вам удастся выясниьт чтото ещё по этому поводу, расскажете.


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB