2

我在 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 时,我得到了新的结果......目标是设置这个过程的自动化,以便网站的访问者每分钟左右看到新的(处理过的)结果......

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

4

3 回答 3

2

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

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

或使用 javascript

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

setTimeout ( reloadPage, 60000);
于 2011-05-10T18:57:50.527 回答
2

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

您需要将它们保存在某个位置(数据库、文本文件等),然后将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);
于 2011-05-10T19:03:34.677 回答
1

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

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

于 2011-05-10T19:00:39.010 回答