如何从PHP中的文本字符串中获取值

时间:2017-11-20 16:56:56

标签: php

我有以下字符串:

"{\"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;

1 个答案:

答案 0 :(得分:3)

试试这个:

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

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

关怀:我认为 ttl card_id 没有“。”他们的价值观。

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

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

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