загрузка удаленных данных на сервер в PHP - PullRequest
2 голосов
/ 14 января 2010

Я пытаюсь загрузить контент с удаленного URL в моем php-коде. Есть два ограничения:

  1. Мне нужно использовать выделенный IP-адрес сервера, поэтому REMOTE_ADDR другого сервера должен быть моим выделенным IP-адресом. Это устраняет Curl, потому что Curl использует прокси для загрузки удаленного URL, и прокси меняет IP-адрес, который не работает.

  2. Мне нужно загрузить данные на свой сервер, используя PHP. Я не хочу использовать Javascript по соображениям безопасности.

Есть ли другие решения, кроме Curl?

Спасибо

Ответы [ 4 ]

3 голосов
/ 15 января 2010

А как насчет file_get_contents($url)? Просто обратите внимание, что на некоторых веб-сайтах требуется пользовательский агент, поэтому вам придется установить его с помощью ini_set() перед совершением вызова.

1 голос
/ 15 января 2010

При использовании stream api и обертки, в которой используется сокет-обертка, вы можете установить параметр контекста bindto для выполнения (1):

Используется для указания IP-адреса (IPv4 или IPv6) и / или номера порта, который PHP будет использовать для доступа к сети. Синтаксис ip: порт. Установка IP или порта на 0 позволит системе выбрать IP и / или порт.
$ctx = stream_context_create( array(
  'socket' => array(
    'bindto' => '192.168.0.107:0',
   )
));

$c= file_get_contents('http://php.net', 0, $ctx);
1 голос
/ 15 января 2010

Вы пробовали file_get_contents

<?php
$homepage = file_get_contents('http://www.stackoverflow.com/');
echo $homepage;
?>
1 голос
/ 15 января 2010

Возможно, вы могли бы использовать fopen для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...