Загрузка страницы PHP через CRON - PullRequest
2 голосов
/ 10 мая 2011

Я запускаю следующую команду в cpanel

/ramdisk/bin/php5 -q /home#/username/etc/php.ini /home#/username/public_html/sitename/subfolder/twitter.php

Предполагается отображать результаты поиска по определенному ключевому слову из твиттера. Файл twitter.php работает просто отлично ... однако у меня сложилось впечатление, что установка задания cron для выполнения файла php каждую минуту перезагрузит страницу с новым содержимым.

Этого не происходит, так как twitter.php остается неизменным (при просмотре в моем браузере).

Я что-то упустил? в чем может быть проблема?

РЕДАКТИРОВАТЬ: (Я думал, что проблема была больше с "cron part") Вот твиттер.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 в браузере, я получаю новые результаты ... цель состоит в том, чтобы настроить автоматизацию этого процесса, чтобы посетители сайта могли видеть новые (обработанные) результаты каждую минуту или около того ...

РЕДАКТИРОВАТЬ: на самом деле я в конечном итоге хочу обрабатывать результаты поиска каждую минуту ПЕРЕД отображением их каждую минуту ... как я могу передавать новые значения в переменную $ var в twitter.php каждую минуту

Ответы [ 3 ]

2 голосов
/ 10 мая 2011

когда я вручную обновляю 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);
2 голосов
/ 10 мая 2011

Cronjob не влияет на браузер.Чтобы обновить страницу, вы можете обновить страницу автоматически с помощью HTML

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

или использовать javascript

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

setTimeout ( reloadPage, 60000);
1 голос
/ 10 мая 2011

Страница будет загружать любой контент, который вы ей скажете.И если задание cron каким-либо образом обновляет содержимое, то страница загружается (когда кто-то запрашивает это) новым содержимым.

Если задание cron не обновляет содержимое, то каждый, кто увидит страницу, увидитстарый контент.

...