我在使用 strpos() php 裁剪信息时遇到问题。
我有来自 api 的原始数据,其中包含 Json,我试图从返回数据中仅裁剪出 Json。我使用 php strpos() 编写了一个函数来裁剪 json,从它的开始位置(大括号的左端)到结束处(右大括号)。但我遇到一个问题,数据的某些值还包括特殊字符,其中也包括分号,这使得函数无法完全裁剪...请问有更好的方法来解决这个问题吗??
一些数据的示例是:
data = {
"name" : "Full Name",
"DisplayName":"St Philip\u0026#39;s,
"grade" : "grade",
"percentage" : 10
{"EventName":"Event Name","maxErrors":10}
};
因此该函数停止为 DisplayName。
您的 $data 似乎是格式错误的 JSON 字符串。
如果这是由于输入错误造成的,并且 $data 是常规 JSON 字符串,那么我建议您更改策略。
假设正确的 JSON 字符串是:
$data = '{
"name":"Full Name",
"DisplayName":"St Philip\u0026#39;",
"grade":"grade",
"percentage":10,
"event":{
"EventName":"Event Name",
"maxErrors":10
}
}';
然后您可以将 JSON 转换为常规 PHP 数组并访问其键:
$decodedData = json_decode ($data, true);
echo $decodedData['DisplayName'];
数据结果是一个 url 编码的字符串:
圣菲利普
如果您需要非 url 编码的字符串,只需添加转换:
echo htmlspecialchars_decode($decoded['DisplayName']);
您将获得:
圣菲利普