【发布时间】:2021-09-04 06:20:27
【问题描述】:
我检索到了一些这样的数据:
object(stdClass)[1]
public 'status' => string 'ok' (length=2)
public 'data' =>
object(stdClass)[3]
public 'sort_data' =>
object(stdClass)[2]
public 'sort_column' => string 'order_item_id' (length=13)
public 'sort_order' => string 'asc' (length=3)
public 'pager' =>
object(stdClass)[4]
public 'page' => int 1
public 'item_per_page' => int 50
public 'total_page' => int 1
public 'total_rows' => int 21
public 'form_data' =>
array (size=0)
empty
public 'items' =>
array (size=21)
0 =>
object(stdClass)[5]
public 'order_item_id' => int 323360064
public 'order_id' => int 111179028
public 'variant' =>
object(stdClass)[6]
public 'id' => int 17586275
public 'seller_id' => int 186764
public 'site' => string 'digikala' (length=8)
public 'is_active' => boolean true
public 'is_archived' => boolean false
public 'title' => string 'Mug' (length=115)
public 'product' =>
object(stdClass)[7]
public 'id' => int 3634323
public 'category_id' => int 6289
public 'title' => string 'Mug model series' (length=40)
public 'shipping_nature_id' => int 1
...
这背后的代码在这里:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'site_url',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json, application/json;charset=UTF-8',
'Authorization: {{token}}'
),
));
$response = curl_exec($curl);
var_dump(json_decode($response));
现在我需要分别访问这些值。例如我想得到public 'title' => string 'Mug model series'。我该怎么做?
【问题讨论】:
-
您似乎审查了 var_dump 输出并删除了一些关键数据,以便在此过程中正确访问。无论如何,向我们展示 var_export() 输出,而不是 var_dump() 输出。在您提供的数据中,前 3 行不可能真的是 ``` object(stdClass)[1] public 'status' => string 'ok' (length=2) public 'data' => ``` if第二行和第三行是正确的,第一行不可能以
[1]结尾,它应该以[2]或更高的数字结尾,即对象中的成员数。 (在第 2 行是 #1 并且第 3 行是 #2 的情况下至少有 2 个)。不能复制。
标签: php json curl web-crawler var-dump