通过CRON加载PHP页面

时间:2011-05-10 18:52:38

标签: php cron cpanel hostmonster

我在cpanel

中运行以下命令
/ramdisk/bin/php5 -q /home#/username/etc/php.ini /home#/username/public_html/sitename/subfolder/twitter.php

应该从twitter显示某个关键字的搜索结果。 twitter.php文件运行得很好......但是我的印象是设置cron作业每分钟执行一次php文件会重新加载包含新内容的页面。

这不会发生,因为twitter.php保持不变(在浏览器中查看时)。

我错过了什么吗?问题是什么?

编辑:(我认为问题更多的是“cron部分”)这是twitter.php:

<?
//searches for tweets mentioning "bieber", prints out....

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://search.twitter.com/search.json?q=bieber&rpp=100' );

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

$var = curl_exec($ch);


curl_close($ch);

$obj = json_decode($var, true);

for($i = 0; $i<100; $i++){

echo $obj['results'][$i]['text']."<br/>";
}

echo "<br/>".sizeof($obj);



?>

当我在浏览器中手动刷新twitter.php时,我得到了新的结果...目标是设置此过程的自动化,以便网站的访问者每隔一分钟左右看到新的(已处理的)结果... < / p>

编辑:我实际上最终希望每分钟处理搜索结果,然后每分钟显示一次...我如何每分钟将新值传递给twitter.php中的$ var变量

3 个答案:

答案 0 :(得分:2)

cronjob不会影响浏览器。为了刷新页面,您可以使用HTML自动刷新页面

<META HTTP-EQUIV="refresh" CONTENT="60">

或使用javascript

function reloadPage(){
    window.location.reload();
}

setTimeout ( reloadPage, 60000);

答案 1 :(得分:2)

  

当我在浏览器中手动刷新twitter.php时,我得到了新的结果...目标是设置此过程的自动化,以便网站的访问者每隔一分钟左右看到新的(已处理的)结果... < / p>

您需要将它们保存在某处(数据库,文本文件等),然后让twitter.php将它们加载到保存的位置。

正在加载twitter.php会导致它执行,但让它通过cron运行将不会为其他用户或其他任何内容预先生成它。您目前所做的只是导致PHP脚本运行额外的,无用的时间。

您需要两个脚本:

cron.php :(让cron执行此操作)

<?php
// this file fetches the json and stores it in a text file
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://search.twitter.com/search.json?q=bieber&rpp=100' );
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$var = curl_exec($ch);
curl_close($ch);

file_put_contents('result.json', $var);

twitter.php

<?php
// this file now loads the json out of the text file, instead of calling Twitter each time
$var = file_get_contents('result.json');
$obj = json_decode($var, true);
for($i = 0; $i<100; $i++){
  echo $obj['results'][$i]['text']."<br/>";
}
echo "<br/>".sizeof($obj);

答案 2 :(得分:1)

该页面将加载您要加载的任何内容。如果cron作业以某种方式更新内容,那么页面将加载(当有人请求时)新内容。

如果cron作业未更新内容,则任何看到该页面的人都会看到旧内容。