如何在问号后删除网址中的内容。 preg_match或preg_replace?

时间:2014-03-28 00:35:02

标签: php regex preg-replace preg-match

我正在开发一些函数,用简单的html dom从url中获取少量数据。

但其中一个数据是图像和图像有问号,后面还有一些信息。

所以url的例子就是这样的。

http://somesite.com/uploaded/images/8.jpg?m=eSuQKgaaaa&mh=t0i7nVhjZleTJ5Ih

因此,问号背后的内容是某种使图像调整为小尺寸的代码。

如果我愿意接受这个

http://somesite.com/uploaded/images/8.jpg

图像的分辨率会更高,这就是我所需要的。

我知道有一个像preg_match这样的函数,但我从来没有理解过表达式。

我有可能以某种方式删除问号及其背后的所有内容吗?

2 个答案:

答案 0 :(得分:4)

更简单:使用explode()

list($uri,) = explode('?', 'http://somesite.com/uploaded/images/8.jpg?m=eSuQKgaaaa&mh=t0i7nVhjZleTJ5Ih');

<强>更新

或者更简单但使用strtoktrim

$uri = trim(strtok('http://somesite.com/uploaded/images/8.jpg?m=eSuQKgaaaa&mh=t0i7nVhjZleTJ5Ih', '?'));

通常情况下,您会使用parse_url()来处理网址,但在这种情况下,使用explode()更容易使用并提供您的目的。

答案 1 :(得分:1)

以更简单的方式可能是:

$iWantThisURL = substr($curr_url(), 0, stripos($curr_url, '?'));