我在使用 php strpos() 从字符串中裁剪信息时遇到问题[关闭]

问题描述 投票:0回答:1

我在使用 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。

php json function request httprequest
1个回答
0
投票

您的 $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']);

您将获得:

圣菲利普

© www.soinside.com 2019 - 2024. All rights reserved.