使用PHP获取请求并将数据复制到服务器

时间:2015-01-28 20:13:59

标签: php get cron request

我想使用cronjob每60分钟发出一次GET请求,以便在我的网络服务器上缓存RSS提要。我的主机提供了一个用于创建cronjob的Web界面,因此应该很容易做到。由于我几乎没有使用php的经验,我对此部分感到困惑。我的代码目前看起来像这样:

<?php
$response = http_get("http://www.target-url.com/feed.rss");
$myfile = fopen("rp.xml", "w") or die("Unable to open file!");
fwrite($myfile, $response);
?>

这会将内容写入rp.xml,但它也会写入标题,因此我得到了无效的xml。 rp.xml的内容如下所示:

HTTP/1.1 200 OK
Date: Wed, 28 Jan 2015 20:27:03 GMT
Content-Type: application/rss+xml;charset=utf-8
Connection: keep-alive
Set-Cookie: creid=1491575037291426898; expires=Thu, 31-Dec-37 23:55:55 GMT; domain=.target-url.com; path=/; httpOnly
X-Served-By-CC: s19lpay01
X-Cache-Control-Set-By: X-Set-Cache-TTL (300)
Cache-Control: public, max-age=300
Access-Control-Allow-Origin: *
Last-Modified: Wed, 28 Jan 2015 20:23:16 GMT
Content-Length: 10672
Edge-Control: max-age=300
X-Cache: HIT (13)
X-Served-By: RFCTC01
Accept-Ranges: bytes
X-Age: 227

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
{...rest of the xml}

1 个答案:

答案 0 :(得分:1)

您可以改为使用file_get_contents()

string file_get_contents ( string $filename [, bool $use_include_path = false [, 
    resource $context [, int $offset = -1 [, int $maxlen ]]]] )
  

file_get_contents()是将文件内容读入字符串的首选方法。如果操作系统支持,它将使用内存映射技术来提高性能。

     

注意:如果要打开带有特殊字符的URI,例如空格,则需要使用urlencode()对URI进行编码。