我是使用 JS/PHP 制作基于许可证服务器请求的网页的初学者。现在,我正在请求服务器的客户信息并将其放入数组中并发回前端。我请求许可证 ID,如果有效,则数据库会发回客户信息和许可证 ID 的数量。这意味着一个客户 ID 可以拥有多个许可证。服务器发送 XML 格式的数据,我试图将其放入数组中并发回前端。许可证 ID 本身不是“敏感”数据,因此暴露给前端是可以的。
XML 格式的数据看起来像这样...
<CustomerData>
<Customer>
<FirstName>TEST FIRST</FirstName>
<LastName>TEST LAST</LastName>
</Customer>
<License>
<LicenseID>11223344</LicenseID>
<ProductID>5448</ProductID>
</License>
<License>
<LicenseID>11223345</LicenseID>
<ProductID>4444</ProductID>
</License>
我尝试在 PHP 中使用 foreach 将其放入数组中,但它总是返回空的许可证数组。 我尝试用这段代码解决...
$xml = simplexml_load_string($result);
if (!empty($xml->CustomerData) && !empty($xml->CustomerData->License)) {
foreach ($xml->CustomerData->License as $license) {
$licenseID = (string) $license->LicenseID;
$productID = (string) $license->ProductID;
$licenses[] = [
'licenseID' => $licenseID,
'productID ' => $productID
];
}
} else {
error_log('Error');
}
echo json_encode(['licenses' => $licenses]);
尝试一下:
$xml = simplexml_load_string($result);
if (!$xml->License->count()) {
error_log('Error');
}
else {
echo(json_encode(['licenses' => iterator_to_array($xml->License, false)]));
}