从url检索数据并保存在php中

时间:2014-09-12 08:10:27

标签: php file-get-contents

我正在尝试从文件中获取html获取内容,然后将其保存到php文件中,以便将其包含在我的主页中。

不幸的是我的脚本没有将数据保存到文件中。我还需要每天编写这些数据,因为它将使用cron作业进行设置。

谁能告诉我哪里出错了?我只是在学习php: - )

<?php 
$richSnippets = file_get_contents('http://website.com/data');
$filename = 'reviews.txt';
$handle = fopen($filename,"x+");
$somecontent = echo $richSnippets;
fwrite($handle,$somecontent);
echo "Success";
fclose($handle);
?> 

2 个答案:

答案 0 :(得分:5)

有几件事,

http://website.com/data收到404错误,但不存在。

将您的代码更改为

$site = 'http://www.google.com';
$homepage = file_get_contents($site);
$filename = 'reviews.txt';
$handle = fopen($filename,"w");
fwrite($handle,$homepage);
echo "Success";
fclose($handle);

删除$somecontent = echo $richSnippets;它没有做任何事情。

如果你有适当的权限,它应该有效。

请确保您指向现有网页。

修改

启用cURL后,您可以使用以下功能

function get_web_page( $url ){
  $options = array(
    CURLOPT_RETURNTRANSFER => true,     // return web page
    CURLOPT_HEADER         => false,    // don't return headers
    CURLOPT_FOLLOWLOCATION => true,     // follow redirects
    CURLOPT_ENCODING       => "",       // handle all encodings
    CURLOPT_USERAGENT      => "spider", // who am i
    CURLOPT_AUTOREFERER    => true,     // set referer on redirect
    CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
    CURLOPT_TIMEOUT        => 120,      // timeout on response
    CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
  );

  $ch      = curl_init( $url );
  curl_setopt_array( $ch, $options );
  $content = curl_exec( $ch );
  curl_close( $ch );

  return $content;
}

现在改变

$homepage = file_get_contents($site);

进入

$homepage = get_web_page($site);

答案 1 :(得分:0)

您应该使用 / 而不是****

$homepage = file_get_contents('http://website.com/data');

此部分

$somecontent = echo $richSnippets;

我上面没有看到$ richSnippets ......它可能没有声明?

你可能想这样做:

fwrite($handle,$homepage);