1

所以我有一个看起来像这样的字符串:

profile=123456&imagehd=image%20profile%20123456.hd.jpg&imagesd=image%20profile%20123456.sd.jpg&name=test_user

我想做的是在正则表达式模式的帮助下提取 imagehd 和 imagesd 字符串(image%20profile%20123456.hd.jpgimage%20profile%20123456.sd.jpg)。我对正则表达式模式没有经验,这就是我问你们的原因。我在想,为了简化事情,只需通过 url 解码器运行字符串以使其可用,然后获取字符串。

字符串位于imagehd=和之间&(用于高清图像)和介于imagesd=和之间&(用于标清图像)。

4

3 回答 3

3

为什么不使用更合适的功能呢?

parse_str($your_string_here, $data);
// now $data is all your data
echo $data['imagehd'];
echo "\n";
echo $data['imagesd'];

parse_str文件

于 2013-10-20T17:21:36.063 回答
2

像这样:

preg_match('~(?<=imagehd=)[^&]+~', $string, $match);
print_r($match);
于 2013-10-20T17:21:48.917 回答
1

实际上,您甚至不需要正则表达式。相反,您可以使用parse_str(),它将字符串视为查询字符串,并从中构造一个数组。然后,您将拥有$imagehd$imagesd作为变量。

于 2013-10-20T17:21:55.010 回答