0
xmlファイルの配列を作成しようとしています。 1回のリクエストで100本の製品が得られ、800本の製品を購入する必要があります。GET要求を変更するループ中の変数
私はxmlの次のページを取得するために使用できる変数ts_dに基づいてループを構築しようとしました。
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ブロックの中に入っていることを確認する必要がありますか? –