我有以下问题。我正在解析具有多个页面的xml提要,但无法了解它们有多少(我在xml url中设置了一个变量,因此对于每个变量都有随机数量的页面)。我只知道这个数字不能超过50个。现在,我有一个脚本可以自动递增页码的变量,从1开始直到50。
假设这个链接总共有26页。使用我的脚本,我将继续发送请求,直到脚本到达第50页。然后它更改第一个变量,并从1到50重新开始。对于第一个链接,从第27页开始,xml将返回以下内容:
<response>
<status>error</status>
<code>400</code>
<message>Incorrect Request Headers</message>
</response>当scipt接收到此消息时,我如何才能停止自动递增,并通过更改第一个变量并从1重新开始继续?现在的代码是:
$query = "SELECT * FROM table_name ORDER BY id ASC";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
if($row['row_name'] == '') {
$variable1 = 0;
}
else {
$variable1 = $row['row_name'];
}
$page = 0;
do {
$page++;
$result = apiCall('option1', 'option2', array('option3' => $variable1, 'page' => $page));
usleep(1000);
$res = json_decode($result);
foreach ($res->node1->node2 as $item) {
//define variable for insertion in MySQL
$sql1 to insert the variables
if (!mysql_query($sql1,$con1))
{
die('Error: ' . mysql_error());
}
}
}
while ($page<=50);
}在上面的代码中,只有$variable1和$page是变量。所有选项(1、2和3)都是预定义的,并且保持不变。也就是说,我需要当脚本得到错误信息时,从1重新开始,下一个值为$variable1。
发布于 2012-09-15 03:00:08
好的。下面是我使用过的代码:
$query = "SELECT * FROM table_name ORDER BY id ASC";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
if($row['row_name'] == '') {
$variable1 = 0;
}
else {
$variable1 = $row['row_name'];
}
$page = 1;
do {
$result = apiCall('option1', 'option2', array('option3' => $variable1, 'page' => $page));
usleep(1000);
$res = json_decode($result);
if ($res->status == 'error') {
break 2;
}
foreach ($res->node1->node2 as $item) {
//define variable for insertion in MySQL
$sql1 to insert the variables
if (!mysql_query($sql1,$con1))
{
die('Error: ' . mysql_error());
}
}
$page++;
}
while (0);
}问题是它会在某个时刻停止脚本执行。我不明白为什么。
https://stackoverflow.com/questions/12429136
复制相似问题