在PHP中加载服务器上的远程数据

时间:2010-01-14 20:57:54

标签: php curl

我正在尝试从我的PHP代码中加载远程URL中的内容。有两个限制:

  1. 我需要使用我拥有的专用服务器IP,因此其他服务器的REMOTE_ADDR必须是我的专用IP。这消除了Curl,因为Curl使用代理加载远程URL,代理更改了无效的IP地址。

  2. 我需要使用PHP在后端加载数据。出于安全原因,我不希望使用Javascript。

  3. 除了Curl之外还有其他解决方案吗?

    谢谢

4 个答案:

答案 0 :(得分:3)

file_get_contents($url)怎么样?请注意,某些网站需要用户代理,因此您必须在拨打电话前设置ini_set()

答案 1 :(得分:1)

您可以使用fopen来实现此目的。

答案 2 :(得分:1)

您是否尝试过file_get_contents

<?php
$homepage = file_get_contents('http://www.stackoverflow.com/');
echo $homepage;
?>

答案 3 :(得分:1)

使用stream api和使用套接字包装器的包装器时,可以设置bindto context parameter来完成(1):

用于指定PHP将用于访问网络的IP地址(IPv4或IPv6)和/或端口号。语法是ip:port。将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);