我在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变量
答案 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作业未更新内容,则任何看到该页面的人都会看到旧内容。