php将URL的一部分转换为字符串

时间:2009-11-19 09:45:58

标签: php html regex url

这个问题更多的是“什么是最好/最简单的方法” -type-of-question。我想从字符串中获取用户ID,例如

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

我想解析字符串并获得它的"123456"部分。

我以为我可以爆炸字符串然后我会得到id=123456&blahblahblah而我想我必须以某种方式动态地从末尾移除垃圾。我认为这可能与正则表达式有关,但我对PHP很新,所以正则表达式比我高一点。

4 个答案:

答案 0 :(得分:2)

函数parse_str()将在这里提供帮助

$str = "profile.php?rdc332738&amp;id=123456&amp;refid=22";
parse_str($str);
echo $id; //123456
echo $refid; //22

答案 1 :(得分:1)

只需抓取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];

答案 2 :(得分:0)

正则表达式:

.*id[=]([0-9]*).*$

答案 3 :(得分:0)

如果你爆炸了字符串:

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

用户ID部分(id = 123456)将为:

$user_id_part=$string_components[1];

然后你可以做一个字符串替换:

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

您拥有用户ID