我想拆分字符串并从此字符串中获取特定数据。我正在使用MySQL和PHP。
我在从数据库中检索数据时遇到问题。
这是字符串:
a:6:{s:12:"cfdb7_status";s:6:"unread";s:9:"your-name";s:12:"Talha Far";s:10:"your-email";s:19:"talha4@gmail.com";s:6:"number";s:11:"03379228";s:9:"your-city";s:9:"Islamabad";s:10:"Studylevel";s:8:"Graduate";}
我想从字符串中获取这些值:
Talha Far , talha4@gmail.com , 03379228, Islamabad , Graduate
答案 0 :(得分:0)
您可以使用unserialize()
将字符串转换为对象:
$str = 'a:6:{s:12:"cfdb7_status";s:6:"unread";s:9:"your-name";s:9:"Talha Far";s:10:"your-email";s:16:"talha4@gmail.com";s:6:"number";s:8:"03379228";s:9:"your-city";s:9:"Islamabad";s:10:"Studylevel";s:8:"Graduate";}';
$obj = unserialize($str) ;
var_dump($obj);
你想要的价值观:
echo $obj['your-name'];
echo $obj['your-email'];
echo $obj['number'];
// ...
但是,要小心,一些指数是错误的。请注意您的给定字符串与此anwser中的字符串之间的差异(例如:s:9:"Talha Far"
而不是s:12:"Talha Far"
)。
答案 1 :(得分:0)
$str = 'a:6:{s:12:"cfdb7_status";s:6:"unread";s:9:"your-name";s:12:"Talha Far";s:10:"your-email";s:19:"talha4@gmail.com";s:6:"number";s:11:"03379228";s:9:"your-city";s:9:"Islamabad";s:10:"Studylevel";s:8:"Graduate";}';
$data = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $str);
print_r(unserialize($data));
您将从中获取数据数组,并且可以提取您的值。