首页 > 解决方案 > 如何以“必需”作为她的值来获取所有变量?在获取 cURL PHP

问题描述

我正在尝试构建一个使用来自另一个站点的 API 的页面。我对此很友好,所以我的问题可能很愚蠢。这个网站有一堆类别,每个类别都有不同的字段需要填写,以便您可以发布项目。因此,不是我为每个类别创建一个页面,而是尝试传递一个已经在他们的 API 上可用的 get 获取具有Required它的值的变量,这样我就可以将它传递给我的代码以正确的方式填充它。

所以如果我通过:

curl -X GET -H 'Authorization: Bearer $ACCESS_TOKEN' https://api.mercadolibre.com/categories/MLA1055

它返回给我很多结果,其中一些是:

"shipping_profile": "optional",
"show_contact_information": false,
"simple_shipping": "optional",
"stock": "required"

所以我的想法是,是否有办法获得结果的名称stock。所以我可以把它放在我的代码上,这样用户就可以填写它,我不必逐个类别地做......就像我之前说的那样。我是新手PHPcURL但我有一些编码经验,只是一种新语言,希望你们能帮助我。

标签: phpcurl

解决方案


首先,您必须将 API 中的 JSON 字符串转换为 PHP 可以理解的对象,我们json_decode()为此:

//let's assume JSON data has been downloaded and stored in data.json file
$jsonString = file_get_contents(dirname(__FILE__) . '/data.json');
$jsonObject = json_decode($jsonString, true);

接下来,从您在评论中提供的 URL 中,我可以看到"required"数据存储在settingskey.xml 中。您可以使用 JSON 查看器工具来可视化数据。

在此处输入图像描述

我正在使用在线JSON 查看器工具

将其提取到另一个变量,或者只是循环遍历元素:

$arrayRequired = array();

foreach($jsonObject['settings'] as $key => $setting){
    if($setting === 'required'){
        $arrayRequired[] = $key;
    }
}

您需要的密钥现在存储在$arrayRequired变量中:

print_r($arrayRequired);

Array
(
    [0] => immediate_payment
    [1] => price
    [2] => stock
)

而已。


推荐阅读