如何通过使用php将所有字符串括在一对双引号中,我想用以下字符串获取它们,
$str = 'a:2:{i:1;a:4:{i:1;s:4:"2000";i:2;s:8:"10th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}i:2;a:4:{i:1;s:4:"2003";i:2;s:8:"12th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}}';
我希望输出如下
2000
10th STD
Full Time
State Board of Education
我尝试了以下代码,但输出仅来自2000
<?php
$str = 'a:2:{i:1;a:4:{i:1;s:4:"2000";i:2;s:8:"10th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}i:2;a:4:{i:1;s:4:"2003";i:2;s:8:"12th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}}'
if (preg_match('/"([^"]+)"/', $str, $m))
{
print $m[1];
}
else
{
}
<?
请建议我怎么做,我应该用哪个功能来获取输出?
答案 0 :(得分:7)
希望这会对你有所帮助。
<?php
$str = 'a:2:{i:1;a:4:{i:1;s:4:"2000";i:2;s:8:"10th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}i:2;a:4:{i:1;s:4:"2003";i:2;s:8:"12th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}}';
$str_array = unserialize($str);
foreach($str_array as $values) {
foreach($values as $value) {
echo $value . '<br/>';
}
echo '<br/>';
}
?>
将返回:
2000
第十届STD
全职
州教育委员会
2003
第12个STD
全职
州教育委员会
答案 1 :(得分:1)
它看起来像是一个bog标准的序列化数组,所以只需对字符串应用unserialize(),然后解析值并在它们上应用is_string,你就会以干净的方式实现结果。
答案 2 :(得分:1)
如上所述,unserialize()然后转换为字符串
<?php
$str = 'a:2:{i:1;a:4:{i:1;s:4:"2000";i:2;s:8:"10th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}i:2;a:4:{i:1;s:4:"2003";i:2;s:8:"12th STD";i:3;s:9:"Full Time";i:4;s:24:"State Board of Education";}}';
$str=unserialize($str);
$str2=implode("<br>",$str[1]);
print $str2."\n";
?>
给出
2000<br>10th STD<br>Full Time<br>State Board of Education