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

yqyhoc1h  于 2023-08-08  发布在  PHP
关注(0)|答案(1)|浏览(125)

已关闭。此问题需要details or clarity。它目前不接受回答。
**希望改进此问题?**通过editing this post添加详细信息并阐明问题。

19小时前关闭。
这篇文章是编辑并提交审查2小时前.
Improve this question
我在使用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停止。

plupiseo

plupiseo1#

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


您将获得:
圣菲利普

相关问题