【发布时间】:2016-02-05 01:59:15
【问题描述】:
我是新手程序员,这是我第一次使用 PHP 和 cURL。我正在进行一个 API 调用,我已经为其设置了一个 cURL 请求,该请求让我返回一个 JSON 对象。
我现在要做的是将 cURL 调用设置为循环遍历包含多个 $payer_id 的 $payers 数组,我想一次对其进行制作和单独请求,打印出 PRETTY_PRINT JSON 对象和对 $payers 数组中的下一个 $payer_id 发出下一个请求。
这是我设置的代码,显然出于安全目的 info 和 api url 是假的,但这是我现在使用的结构。就像我之前提到的那样,如果您删除代码的 foreach 部分并手动将 $payer_id 编号输入到我拥有的代码中,它会起作用并返回我想要的 JSON 对象......但我希望能够将代码设置为使用 $payers 数组并为我打印出 JSON 对象。
任何帮助,指导将不胜感激。谢谢!
<?php
/* API url*/
$url = 'https://testapi.com/cov/all.json';
$payers = array("00002", "00112");
/* Assign parameter values here */
foreach ($payers as $payer) {
$api_key = '1111122222233333';
$payer_id = echo "$payer";
$provider_first_name = 'laura';
$provider_last_name = 'brown';
$provider_npi = '444445555';
$member_first_name = 'billy';
$member_last_name = 'bob';
$dependent_ssn = '111-22-3333';
$member_dob = '1988-11-11';
/* $_GET Parameters to Send */
$params = array(
'api_key' => $api_key,
'payer_id' => $payer_id,
'provider_first_name' => $provider_first_name,
'provider_last_name' => $provider_last_name,
'provider_npi' => $provider_npi,
'member_first_name' => $member_first_name,
'member_last_name' => $member_last_name,
'dependent_ssn' => $dependent_ssn,
'member_dob' => $member_dob
);
/* Update URL to container Query String of Paramaters */
$url .= '?' . http_build_query($params);
/* cURL Resource */
$ch = curl_init();
/* Set URL */
curl_setopt($ch, CURLOPT_URL, $url);
/* Tell cURL to return the output */
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
/* Execute cURL, Return Data */
$curl_response = curl_exec($ch);
curl_close($ch);
$decoded = json_decode($curl_response, true);
echo '<pre>';
echo json_encode($decoded, JSON_PRETTY_PRINT);
echo '</pre>';
}
?>
【问题讨论】:
-
这里有错误
$payer_id = echo "$payer"; -
没有必要做
echo "$payer"。$payer就足够了。此外,您可以使用compact('api_key', 'payer_id', ...),而不是分配相同名称的键/值对。您应该确保为 API 请求设置正确的上下文(无论是 POST、GET、PUT[、DELETE、..])。 -
谢谢你们...... @RamRaider 我按照您在下面帖子中的建议做了,现在它确实访问了数组,但它只返回第一个 $payer_id 的第一个 JSON。还有什么可以让它循环到数组中的下一个 payer_id 吗?还是您认为它是由于它是一个大型 JSON 对象而受到限制?