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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Не следует логике программы.
sima007
Отправлено: 29 Апреля, 2011 - 20:50:37
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2011  


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




Добрый день всем, возникла проблема с file_get_contents.
Дело в том что я закачиваю этой функцией файл размером в 3мб на свой сервер.
Всё происходит при submit-e формы.
И происходит так:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. echo '1' ;
  3. file_get_contents("http://file_patch.zip");
  4. ?>

И 1 на экран выводится только после закачки файла, не следуя логике программы.
Как это можно иправить?
 
 Top
ALEN
Отправлено: 29 Апреля, 2011 - 20:58:32
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




Не вижу, чтоб файл выводили на экран или запись.
 
 Top
Uchkuma
Отправлено: 29 Апреля, 2011 - 21:01:11
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


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




 
 Top
sima007
Отправлено: 29 Апреля, 2011 - 21:04:15
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2011  


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




ALEN пишет:
Не вижу, чтоб файл выводили на экран или запись.

Это происходит после.Но сама проблема в file_get_contents.
Uchkuma пишет:
ob_flush

Поставил перед file_get_contents, та-же проблема.
 
 Top
ALEN
Отправлено: 29 Апреля, 2011 - 21:10:30
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




file_get_contents -- Получить содержимое файла в виде одной строки
file_put_contents -- Записать строку в файл

=>

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // читаем файл в переменную $file
  3. $file=file_get_contents("http://file_patch.zip");
  4. // Записываем значение переменной $file в файл file_patch.zip
  5. file_put_contents ('file_patch.zip',$file);


Лучше использовать CURL - тогда не будет проблем с работой на некоторых серверах .

----------------

И да забыл сильно много оперативки жрет такой процесс -> тем более CURL и запись в файл

(Отредактировано автором: 29 Апреля, 2011 - 21:11:58)

 
 Top
sima007
Отправлено: 29 Апреля, 2011 - 21:13:16
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2011  


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




ALEN пишет:
file_get_contents -- Получить содержимое файла в виде одной строки
file_put_contents -- Записать строку в файл

=>

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // читаем файл в переменную $file
  3. $file=file_get_contents("http://file_patch.zip");
  4. // Записываем значение переменной $file в файл file_patch.zip
  5. file_put_contents ('file_patch.zip',$file);


Лучше использовать CURL - тогда не будет проблем с работой на некоторых серверах .

----------------

И да забыл сильно много оперативки жрет такой процесс -> тем более CURL и запись в файл


Именно так у меня работает, но нарушается логика, а курл на некоторых серверах не установлен.
А буферизация вывода - совсем не в тему.
(Добавление)
Переписал с curl-ом, та-же история.
 
 Top
ALEN
Отправлено: 29 Апреля, 2011 - 21:31:16
Post Id



Участник


Покинул форум
Сообщений всего: 1459
Дата рег-ции: Авг. 2008  
Откуда: Крым


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




код покажи
 
 Top
sima007
Отправлено: 29 Апреля, 2011 - 21:35:36
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2011  


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




ALEN пишет:
код покажи

С file_get_contents:
http://pastebin[dot]com/H1xapppD
С curl-ом:
http://pastebin[dot]com/aqGhUQM7
(Добавление)
Ну вот, показал код, а дальше? Ниндзя
 
 Top
DlTA
Отправлено: 29 Апреля, 2011 - 22:10:04
Post Id



Постоянный участник


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


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




sima007 пишет:
И 1 на экран выводится только после закачки файла, не следуя логике программы.
Как это можно иправить?

вывод в браузер сервер производит порциями, так как "1" это очень маленькая часть от заданного (где то там) объема, то и этот текст возвращается в браузер вместе с тем что идет после "1".

вариант исправления скорее всего будет состоять в создании нескольких запросов и использвании ajax или ченить другого
 
 Top
sima007
Отправлено: 29 Апреля, 2011 - 22:11:19
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2011  


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




DlTA пишет:
sima007 пишет:
И 1 на экран выводится только после закачки файла, не следуя логике программы.
Как это можно иправить?

вывод в браузер сервер производит порциями, так как "1" это очень маленькая часть от заданного (где то там) объема, то и этот текст возвращается в браузер вместе с тем что идет после "1".

вариант исправления скорее всего будет состоять в создании нескольких запросов и использвании ajax или ченить другого

Смотрите в полный код, который я дал выше.
По поводу AJAX - не хочу углублятся, как делить запросы на сервер им, тем более файл должен быть один.
 
 Top
DlTA
Отправлено: 29 Апреля, 2011 - 22:18:14
Post Id



Постоянный участник


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


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




sima007 пишет:
Смотрите в полный код, который я дал выше.

а что я там должен увидеть?
 
 Top
sima007
Отправлено: 29 Апреля, 2011 - 22:19:16
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2011  


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




sima007 пишет:
вывод в браузер сервер производит порциями, так как "1" это очень маленькая часть от заданного (где то там) объема

Вы видите что там больше чем "1" ?
 
 Top
DlTA
Отправлено: 29 Апреля, 2011 - 22:24:46
Post Id



Постоянный участник


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


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




вы реально думаете что в одном пакете который пересывается через сеть передается 1 (2) символа в браузер?!
 
 Top
sima007
Отправлено: 29 Апреля, 2011 - 22:27:40
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Апр. 2011  


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




DlTA пишет:
вы реально думаете что в одном пакете который пересывается через сеть передается 1 (2) символа в браузер?!

При чём здесь это?
Вы можете по теме написать?
 
 Top
DlTA
Отправлено: 29 Апреля, 2011 - 22:32:48
Post Id



Постоянный участник


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


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




честно говоря я и не знаю чем вам не угодил мой первый пост
возможно если проблема не в том что написано в заголовке темы, и вы сможете составить понятный вопрос, то я смогу чем либо помочь.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB