0
我想構建一個xml文件的數組。 每個獲得請求給我100個產品,我需要800左右的產品。更改GET請求變量while循環
所以我試着建立一個基於變量ts_d的循環,你可以使用它來獲取xml的下一頁。
public function getXml($division, $topic, $tsp)
{
$array = array();
$i = 0;
$x = 1;
while ($x = 1) {
$headers = ['Authorization' => 'Bearer '.$this->getAccessToken()];
$client = new Client([
'base_uri' => 'https://start.exactonline.nl/docs/',
]);
try {
$response = $client->request('GET', 'XMLDownload.aspx', [
'query' => ['Topic' => $topic, '_Division_' => $division, 'TSPaging' => $tsp],
'headers' => $headers,
]);
$string = new \SimpleXMLElement((string) $response->getBody());
$tspaging = $string->Topics->Topic->attributes()->{'ts_d'};
$array[$i]=$string;
echo $tspaging . ' ' . $tsp;
}
catch (\Exception $e) {}
if (!isset($tspaging)) {
$x = 0;
}
$i++;
$tsp = $tspaging
unset($string);
}
return $array;
}
我把這個功能:
$stockPositions = $connection->getXml(1310477, 'StockPositions', '');
但是這個while循環是無限的,回波返回值:
0x000000000F5753AB 0x000000000F5753AB 0x000000000F5753AB0x000000000F5753AB 0x000000000F5753AB0x000000000F5753AB 0x000000000F5753AB0x000000000F5753AB 0x000000000F5753AB0x000000000F5753AB
你們可以幫助滿足跳出死循環?
'while($ x = 1)'?你不是指'=='?當你使用它時,'$ x''應該是一個布爾型'true' /'false' ... – Random
將while循環改爲($ x),$ x = 1爲true並且if語句爲false但結果是一樣的。 – Lex
您需要測試變量'tspaging'並驗證它是否實際上落在您要終止腳本的Exception Catch塊中? –