【问题标题】:How to get value from text string in PHP如何从 PHP 中的文本字符串中获取值
【发布时间】:2017-11-20 16:56:55
【问题描述】:

我有以下字符串:

"{\"ttl\": null\054 \"card_id\": \"np\"}.DPSXmw.VApKpbKiEnEoRgwWblgt-nuewFg"

我可以使用带斜杠来整理它,这样它就变成了:

"{"ttl": null, "card_id": "np"}.DPSXmw.VApKpbKiEnEoRgwWblgt-nuewFg"

我需要获取np 所在的值,但是我不确定如何执行此操作。最好删除尾随文本并将其作为 JSON 寻址,还是最好使用另一种方法?

有问题的字符串确实包含包装“”

当前代码:

echo stripslashes($VCIDcookie); 

$string = stripslashes($VCIDcookie);

output of $string: "{"ttl": null54 "card_id": "np"}.DPSXmw.VApKpbKiEnEoRgwWblgt-nuewFg"

$string = explode('}', $string);

$json = json_decode($string[0] .'}');
echo $json->card_id;

更新的代码 - 我使用 trim() 删除了环绕引号,因此字符串没有它们,但我仍然没有得到 np 输出:

$string = trim($VCIDcookie,'"');
$string = stripslashes($string);
echo $string;
$string = explode('}', $string);

$json = json_decode($string[0] .'}');
echo $json->card_id;

【问题讨论】:

  • 所以你需要np 的输出?前面总是有"card_id": 吗?
  • 嗯,您的数据实际上是否仍然包含围绕整个内容的引号?还是您添加它以显示示例?
  • 抱歉,它确实包含内容周围的引号。

标签: php


【解决方案1】:

试试这个:

$string = '{"ttl": null, "card_id": "np"}.DPSXmw.VApKpbKiEnEoRgwWblgt-nuewFg';
$string = explode('.', $string);

$json = json_decode($string[0]);
echo $json->card_id;

Care :我想 ttlcard_id 没有“。”在他们的价值观中。

或者,为了避免“。”的问题。 :

$string = '{"ttl": null, "card_id": "np"}.DPSXmw.VApKpbKiEnEoRgwWblgt-nuewFg';
$string = explode('}', $string);

$json = json_decode($string[0] .'}');
echo $json->card_id;

【讨论】:

  • 我认为那里的引文有点混淆
  • 假设数据中没有点
  • 完全正确 :) 我更新了我的答案。你在读我的心!
  • 如果是这样,可能必须在 }. 上爆炸,然后在 json_decode 之前添加额外的 }。或者沿着 regexhell 的路线走,哈哈。
  • 您可以通过对}. 进行explode 处理,然后在解码前将} 添加回字符串,从而消除句点问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
  • 1970-01-01
  • 2012-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多