Кроссдоменный GET-запрос без использования php

1 23
siv1987
На сайте с 02.04.2009
Offline
427
#21

http://www.php.net/manual/ru/function.fread.php


<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192); //чтение из дескриптора $handle по 8192 байт
}
fclose($handle);
?>
[Удален]
#22

BeliyVV, вам ответили и это правильный ответ :)

Оптимизайка:
Та страница, с которой вы хотите забирать данные, должна отдавать http-заголовок Access-Control-Allow-Origin для вашего домена или '*'. Иначе - без прокси на вашем домене (на php или т.п.) - никак.

вариант с фреймом может быть использован, НО только на машине с установленным дополнением типа https://addons.mozilla.org/ru/firefox/addon/greasemonkey/

BV
На сайте с 09.08.2011
Offline
22
#23
siv1987:
http://www.php.net/manual/ru/function.fread.php


<?php
$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192); //чтение из дескриптора $handle по 8192 байт
}
fclose($handle);
?>

)))Прикол в том, что я это вариант уже использовал, точнее испробовал как раз после того, как дал предыдущий ответ - вариант тугой, и для больших файлов не подходит, но зато я нашел то, куда копать и уже нашел выход. Не буду писать что и куда, просто воспроизведение ролика напрямую после соединения, тоже блоками, но не так как в вшеприведенном случае, когда скрипт по8192-байтово скачивает польностью весь файл в оперативку, а так, что скрипт после получения первых байт уже отдает его браузеру, оперативка тоже используется само собой, но совсем не так. Причины почему не расписываю метод я написал выше. Все равно всем большое спасибо, без создания этой ветки я не нашел бы ответ. Минус есть, и он огромный - перемотка не возможна.

siv1987
На сайте с 02.04.2009
Offline
427
#24
)))Прикол в том, что я это вариант уже использовал, точнее испробовал как раз после того, как дал предыдущий ответ - вариант тугой, и для больших файлов не подходит

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

Не буду писать что и куда, просто воспроизведение ролика напрямую после соединения, тоже блоками, но не так как в вшеприведенном случае, когда скрипт по8192-байтово скачивает польностью весь файл в оперативку, а так, что скрипт после получения первых байт уже отдает его браузеру, оперативка тоже используется само собой, но совсем не так.


$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
echo fread($handle, 1024);
flush();
}
fclose($handle);
BV
На сайте с 09.08.2011
Offline
22
#25
siv1987:
Прикол в том, что этот вариант надо переделать чтобы отдавать сразу результат, а не сохранять в переменной. В этом примере просто наглядно показано как читать файл по кускам.




$handle = fopen("http://www.example.com/", "rb");
$contents = '';
while (!feof($handle)) {
echo fread($handle, 1024);
flush();
}
fclose($handle);

Но я ведь тоже и написал поэтому что вариант тугой - он файл только читает по кускам, но отдает целиком. Попробуйте сами, вообщем, если не верите, в полевых условиях. Немного поправлюсь, т.к. flush() не увидел в посл сообщении - с flush() скорее всего будет нормально работать, принцип тот же, все дело в буфере.

Оптимизайка
На сайте с 11.03.2012
Offline
396
#26

Можете использовать у себя nginx proxy, по условию (без php) подходит :D

http://wiki.nginx.org/HttpProxyModule

⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
BV
На сайте с 09.08.2011
Offline
22
#27
Оптимизайка:
Можете использовать у себя nginx proxy, по условию (без php) подходит :D

http://wiki.nginx.org/HttpProxyModule

Но, я так понимаю, только для передачи данных, а не для получения?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#28

Чтобы разгрузить сервак, попробуйте сделать как на ютубе. Нигде не читал, просто заметил.

Вообщем когда смотрить видос не очень короткий, то он подгружает ролик не полностью, а по кускам.

На примере.

Есть ролик длиной в 1 час.

Он сначала подгружает скажем первые 5 минут.

Когда я досмотрел до 4 минуты, он еще подгружает и т.д. до самого конца.

Если интересно, посмотрите через FireBug.

Таким образом нагрузка на сервер резко снизится, и пофиг что размер файла 500 мб, он его будет отдавать по кускам. А вот чтобы читал по кускам - курите интернет, примеров 2 вагона и 100500 тележек:)

Как научить Апач отдавать контент по кускам

Подпись))
BV
На сайте с 09.08.2011
Offline
22
#29

Я вот не могу понять - модуль ngx_http_mp4_module работает с удаленными файлами или нет?

1 23

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий