PHP получает часть URL в строку - PullRequest
0 голосов
/ 19 ноября 2009

Этот вопрос больше относится к "каков наилучший / самый простой способ сделать" -типа вопроса. Я хотел бы получить только идентификатор пользователя из строки, такой как

<a href="/profile.php?rdc332738&amp;id=123456&amp;refid=22">User name</a>

Я бы хотел разобрать строку и получить только часть "123456".

Я думал, что смогу взорвать строку, но тогда получу id=123456&blahblahblah, и я полагаю, что мне придется каким-то образом динамически удалять мусор с конца. Я думаю, что это может быть возможно с регулярным выражением, но я довольно плохо знаком с PHP, и поэтому регулярное выражение немного выше меня.

Ответы [ 4 ]

2 голосов
/ 19 ноября 2009

Функция parse_str () поможет здесь

$str = "profile.php?rdc332738&amp;id=123456&amp;refid=22";
parse_str($str);
echo $id; //123456
echo $refid; //22
1 голос
/ 19 ноября 2009

Просто выберите любой символ от id= до & или " (последний учитывает случай, когда id ставится последним в строке запроса)

$str = 'a href="/profile.php?rdc332738&amp;id=123456&amp;refid=22">User name</a>';

preg_match('/id=([^&"]+)/', $str, $match);
$id = $match[1];
0 голосов
/ 19 ноября 2009

если взорвать строку:

$string="<a href="/profile.php?rdc332738&amp;id=123456&amp;refid=22">User name</a>"
$string_components=explode('&amp;','$string');

Часть идентификатора пользователя (id = 123456) будет:

$user_id_part=$string_components[1];

тогда вы можете заменить строку:

$user_id=str_replace('id=','$user_id_part');

И у вас есть идентификатор пользователя

0 голосов
/ 19 ноября 2009

Regex:

.*id[=]([0-9]*).*$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...