【问题标题】:PHP text-extraction from stringPHP 从字符串中提取文本
【发布时间】:2012-02-17 16:13:27
【问题描述】:

我有以下字符串:a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}

在这种情况下,我需要做的是从中提取数字 48。这个数字可以有任意位数。我该怎么做呢?

【问题讨论】:

    标签: php string text-extraction


    【解决方案1】:

    看起来你正面临一个序列化的字符串。因此,不要尝试使用正则表达式或任何其他字符串操作方法来获取该数字,试试这个:

    $myVar = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
    $myNumber = $myVar['userid'];
    

    在此处了解 PHP 序列化:

    http://php.net/manual/en/function.serialize.php
    http://php.net/manual/en/function.unserialize.php

    【讨论】:

      【解决方案2】:

      究竟你想达到什么目的?该字符串看起来像 serialize()d 字符串,所以最好的选择是 unserialize()it

      【讨论】:

        【解决方案3】:

        它看起来像序列化的字符串。

        $data = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
        print_r($data['userid']);
        

        【讨论】:

          【解决方案4】:

          看起来这是一个序列化的关联数组。您只需要使用 unserialize() 将其从字符串转回数组即可。

          <?php
            $arr = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
            echo $arr['userid'];
          ?>
          

          【讨论】:

            【解决方案5】:

            我看到的字符串是PHP中的序列化数组

            要反序列化数组,请执行此操作

            $obj = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
            echo $obj['userid'];
            

            我有未序列化的数组,然后按名称访问数组参数

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2012-02-25
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多