我有一个问题,我现在设法修复,但修复不会在x更改后立即生效。
我需要做什么。
从数据库中获取所有项目(此数据库不是我的,因此数据可以随时更改)并获取该项目的ID。 对于我得到的每个ID,我需要从另一个创建xml输出的源获取数据。 现在它创建一个包含ID,商品购买价格,商品销售价格等等的数组......并在重复的密钥上插入更新我自己的数据库中的表。
这是我面临的一些限制: 1.从中获取商品价格数据等的数据源不允许长度超过8149个字符的网址。 2.数据源也不喜欢它,当我发出数千个单项请求时(目前有9350个项目,也就是9350单个请求意味着我将被快速列入黑名单)。 3.项目数量可能在未来发生变化(少或多)。
此时,一切正常,通过在项目ID数组的foreach循环中执行if循环($ i ++)直到我达到9350(一次50个项目ID的一组将被放入URL)。 对于每50个项目,一个函数使用给定的URL执行curl请求,使用我服务器上的数据创建一个新的xml文件,这会在我的服务器上生成187 xml文件(这非常有效)。
在此之后,我读出每个xml文件并将数据转储到我自己的表中。
我的问题简而言之:
9350 / 50 = 187 (a round number)
但是,只要我有9351个或更多项目,它就不能被50整除(不是一个整数)。
有人会更好地了解如何做到这一点吗?
细节: 项目数据来自EVE Online数据库转储,因此具有可变数量的ID。 商品价格来自对eve-central.com/api/marketstat?itemid=xxxxxxx&itemid=xxxxxx&systemid=xxxxxx的网址调用(粗略最大值为60 * itemid =)
编辑: foreach循环。
$i = 0;
$j = 0;
foreach($itemidarray as $itemid){
$id = $itemid["itemID"];
if($i == 50){
$j++;
$url .= '&typeid=';
$url .= "$id";
$url .= '&usesystem=30000421';
xmlcreatorfunction($url, $j);
$i = 0;
}
else{
$url .= '&typeid=';
$url .= "$id";
$i++;
}
}
我希望你能看到一旦我有超过9350项目ID,这可能会引发问题。