从字符串中提取PHP文本


PHP text-extraction from string

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

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

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

$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'];

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