我一直在研究一个PHP脚本,它从第三方动态JSON文件中取出大量数据,并将压缩数据写入新的JSON文件。我对服务器和虚拟主机一无所知,直到今天还没有关于PHP的任何信息。这是PHP脚本:
<?php
// Retrieve data
$curlSession = curl_init();
curl_setopt($curlSession, CURLOPT_URL, "http://eu.battle.net/api/wow/challenge/region?locale=en_GB");
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER, true);
$leaderboardsData = curl_exec($curlSession);
curl_close($curlSession);
$json_a = json_decode($leaderboardsData, true);
// Two categories that will be used in writing to a new JSON file
$topItems = array();
$subItems = array();
// Filter data and store the relevant information in the two categories
foreach($json_a[challenge] as $challenge)
{
$dungeon = $challenge[map][name];
echo $dungeon.' ';
foreach($challenge[groups] as $group)
{
$ranking = $group[ranking];
$time_passed = time() - strtotime($group[date]);
$hours_passed = floor($time_passed / 3600);
$minutes_passed = floor($time_passed / 60);
$members = '';
foreach($group[members] as $member)
{
$memberName = $member[character][name];
$memberGuild = $member[character][guild];
$memberRealm = $member[character][realm];
$member = $memberName.' <'.$memberGuild.'>, '.$memberRealm;
$members .= $member;
}
$timer = $group[time][minutes].':'.$group[time][seconds].'.'.$group[time][milliseconds];
if($hours_passed > 0)
{
$item = '#'.$ranking.' '.$dungeon.': '.$timer.' ('.$hours_passed.' hours ago)';
}
else
{
$item = '#'.$ranking.' '.$dungeon.': '.$timer.' ('.$minutes_passed.' minutes ago)';
}
if($minutes_passed > 0 and $hours_passed < 72)
{
array_push($topItems, $item);
array_push($subItems, $members);
}
}
}
echo count($subItems);
// Write to file
$json_array = array();
for($i = 0; $i < count($topItems); $i++)
{
$json_item = json_encode(array(
"topItem" => $topItems[$i],
"subItem" => $subItems[$i]));
array_push($json_array, $json_item);
}
$result = json_encode($json_array);
file_put_contents('./challenge.json', $result);
&GT?;
我读到有关cron作业是服务器上计划任务的工具的一些内容。我想每隔几分钟运行上面的脚本,以便将数据保存在它写入的文件中。我该怎么办呢?我非常担心我最终会为虚拟主机付费并且无法正确使用它。
任何人都可以向我推荐这种东西的好主机服务,并向我解释我如何在那里设立一个cron工作?
编辑:我设法让我的脚本在免费共享主机上运行,但由于我正在尝试从暴雪娱乐中检索数据,我的IP显然被列入黑名单,因此我只收到空数据。如果我通过cron工作支持获得VPS,我的问题会得到解决吗?服务器必须能够通过我的相关Android应用程序处理几十个人,每天多次请求大小约为5MB的.JSON文件。我应该考虑什么样的预算?我不想得到一个我不需要的实用工具(例如,我不需要也托管网站或其他服务)。