PHP извлечение текста из строки - PullRequest
1 голос
/ 17 февраля 2012

У меня есть следующая строка: a: 2: {s: 4: "пользователь"; b: 1; s: 6: "идентификатор пользователя"; s: 2: "48";}

ЧтоВ этом случае мне нужно извлечь номер 48 из него.Этот номер может иметь любое количество цифр.Как бы я поступил так?

Ответы [ 5 ]

4 голосов
/ 17 февраля 2012

Похоже, вы сталкиваетесь с сериализованными строками. Поэтому вместо того, чтобы пытаться получить это число с помощью регулярного выражения или любых других методов манипуляции со строками, попробуйте следующее:

$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

1 голос
/ 17 февраля 2012

Это похоже на сериализованную строку.

$data = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
print_r($data['userid']);
1 голос
/ 17 февраля 2012

Чего точно вы пытаетесь достичь? Эта строка выглядит как serialize() d, поэтому вам лучше всего поставить unserialize() it

0 голосов
/ 17 февраля 2012

Строка, которую я вижу, - это сериализованный массив в PHP

. Для десериализации массива сделайте это

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

У меня есть несериализованный массив, затем доступ к параметру массива по имени

0 голосов
/ 17 февраля 2012

Похоже, это сериализованный ассоциативный массив.Вам просто нужно использовать unserialize (), чтобы превратить его из строки в массив.

<?php
  $arr = unserialize('a:2:{s:4:"user";b:1;s:6:"userid";s:2:"48";}');
  echo $arr['userid'];
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...