【问题标题】:How to do i Get only Double Quotes String by using php [duplicate]如何使用 php 仅获取双引号字符串 [重复]
【发布时间】:2014-12-23 17:03:32
【问题描述】:

如何使用 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 
{

}
<?

请建议我怎么做,我应该使用哪个函数来获取我的输出?

【问题讨论】:

  • 这看起来像一个 PHP 序列化 数组。使用unserialize() 对其进行反序列化,然后将其视为数组。甚至不要在这里使用正则表达式。

标签: php string


【解决方案1】:

希望这会对你有所帮助。

<?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
第 10 种性病
全职
州教育委员会

2003
第十二性病
全职
州教育委员会

【讨论】:

  • 我需要像 2000 10th STD Full Time State Board 这样打印上述输出 如何拆分行值?
【解决方案2】:

它看起来像一个沼泽标准序列化数组,所以只需对字符串应用 unserialize(),然后解析值并对其应用 is_string,您将以干净的方式获得结果。

【讨论】:

    【解决方案3】:

    如上所说,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
    

    【讨论】:

    • 我想显示年份是列,列值应该是 2000,类是列,类值 STD 像这样我想显示。你能给出任何想法吗
    猜你喜欢
    • 1970-01-01
    • 2018-07-31
    • 1970-01-01
    • 2014-09-26
    • 2014-05-12
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多