Php “分解”命令中的分隔符如何正确?
我有一个字符串:Php “分解”命令中的分隔符如何正确?,php,Php,我有一个字符串: $test=“{”Classes:”[94134114,48112113,90133,89128132115],“ControlClasses:“[]”,“SecureClasses:“[]”,“SecureControlClasses:“[]”} 我想用PHP命令explode拆分这个字符串。 作为分隔符,我想使用,“(全部三个字符!)。 命令如何正确 $result = explode("","", $test); // error json_decode()难道不
$test=“{”Classes:”[94134114,48112113,90133,89128132115],“ControlClasses:“[]”,“SecureClasses:“[]”,“SecureControlClasses:“[]”}
我想用PHP命令explode
拆分这个字符串。
作为分隔符,我想使用,“
(全部三个字符!)。
命令如何正确
$result = explode("","", $test); // error
json_decode()
难道不是更好的解码方式吗?你是说这样<代码>$result=explode(“\”,“\”,$test)首先,请确定,您知道字符串是JSON吗?如果是这样的话,为什么需要将其作为字符串而不是用PHP处理JSON的标准方式来访问呢?其次,您会遇到语法错误,因为在示例字符串和代码示例中的双引号中都有未经转换的双引号。您需要使用单引号或用“\”转义引号。但是,即使这可能回答了你的问题,它实际上有点离题。
<?php
//First things first
//do
$test = "{\"Classes\":\"[94,134,114,48,112,113,90,133,89,128,132,115]\",\"ControlClasses\":\"[]\",\"SecureClasses\":\"[]\",\"SecureControlClasses\":\"[]\"}";
//or
$test = '{"Classes":"[94,134,114,48,112,113,90,133,89,128,132,115]","ControlClasses":"[]","SecureClasses":"[]","SecureControlClasses":"[]"}';
//Then use JSON to get strings:
$result = json_decode($test, true); // Array("Classes" => "[94,134,114,48,112,113,90,133,89,128,132,115]", "ControlClasses" => "[]", "SecureClasses" => "[]", "SecureControlClasses" => "[]")
$classes = $result['Classes']; // "[94,134,114,48,112,113,90,133,89,128,132,115]"
$controlClasses = $result['ControlClasses']; // "[]"
$secureClasses = $result['SecureClasses']; // "[]"
//Now you should remove brackets
$classes = substr($classes, 1, strlen($classes) - 1);
$controlClasses = substr($controlClasses, 1, strlen($controlClasses) - 1);
$secureClasses = substr($secureClasses, 1, strlen($secureClasses) - 1);
//And only this time your dream gonna come true (it is disgusting)
$classes = explode(',', $classes);
$controlClasses = explode(',', $controlClasses);
$secureClasses = explode(',', $secureClasses);
//Here we are
echo $classes[3]; // 48