我试图运行一些PHP内卷曲它每隔一段时间,以便它将检索信息从网站,然后将其插入到我的数据库。我能够让cronjob工作,而php的工作原理是,每当它运行时,它都会向我发送一封电子邮件,而且它确实如此。然而,没有工作的是CURL脚本和/或MySQL脚本。Crontab Linux与PHP,MySQL和Curl
的cronjob:
* * * * * /usr/bin/php -q /var/www/rstracker/cronjobs.php
cronjobs.php:
<?php
$to = '';
$subject = 'RSTracker Cronjob Ran!';
$message = 'Successful cronjob!';
$headers = 'From: ' . "\r\n" .
'Reply-To: ' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
<?php
include("connect.php");
$query = mysql_query("SELECT id FROM users");
while($row = mysql_fetch_array($query))
{
$userID = $row['id'];
$date = mktime();
// create a new cURL resource
$ch = curl_init();
// set URL options
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($ch, CURLOPT_URL, "http://services.runescape.com/m=hiscore_oldschool/index_lite.ws?player=".$username);
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab HTML
$data = curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
//echo "<textarea>$data</textarea><br />";
$hs = explode("\n",$data);
$skills = array("Overall","Attack","Defence","Strength","Constitution","Ranged","Prayer","Magic","Cooking","Woodcutting","Fletching","Fishing","Firemaking","Crafting","Smithing","Mining","Herblore","Agility","Thieving","Slayer","Farming","Runecrafting","Hunter","Construction");
$i = 0;
for($i = 0; $i<count($skills);$i++) {
// Explode each skill into 3 values - rank, level, exp
$stat = explode(',', $hs[$i]);
$out[$skills[$i]] = Array();
$out[$skills[$i]]['rank'] = $stat[0];
$out[$skills[$i]]['level'] = $stat[1];
$out[$skills[$i]]['xp'] = $stat[2];
}
foreach($out as $key => $value)
{
if($value['level']>0||$value['xp']>0||$value['rank']>0)
{
mysql_query("INSERT INTO skills SET userID='$userID', skill='$key', level='".$value["level"]."', xp='".$value["xp"]."', rank='".$value["rank"]."', date='$date'");
}
}
}
?>
您是否尝试过在cron作业之外运行脚本?它会抛出任何错误吗? –