【发布时间】:2012-02-17 16:13:27
【问题描述】:
我有以下字符串:a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}
在这种情况下,我需要做的是从中提取数字 48。这个数字可以有任意位数。我该怎么做呢?
【问题讨论】:
标签: php string text-extraction
我有以下字符串:a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}
在这种情况下,我需要做的是从中提取数字 48。这个数字可以有任意位数。我该怎么做呢?
【问题讨论】:
标签: php string text-extraction
看起来你正面临一个序列化的字符串。因此,不要尝试使用正则表达式或任何其他字符串操作方法来获取该数字,试试这个:
$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
【讨论】:
究竟你想达到什么目的?该字符串看起来像 serialize()d 字符串,所以最好的选择是 unserialize()it
【讨论】:
它看起来像序列化的字符串。
$data = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
print_r($data['userid']);
【讨论】:
看起来这是一个序列化的关联数组。您只需要使用 unserialize() 将其从字符串转回数组即可。
<?php
$arr = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
echo $arr['userid'];
?>
【讨论】:
我看到的字符串是PHP中的序列化数组
要反序列化数组,请执行此操作
$obj = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
echo $obj['userid'];
我有未序列化的数组,然后按名称访问数组参数
【讨论】: