strpos URL 2个不同的位置?

时间:2015-11-21 19:28:00

标签: php

让我们说URL是: http://test.com/site.php?show=1

在我做完之后得到1:

$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$last_url = substr($url, strrpos($url, '=') + 1);

如果我想获得数字1和之后的数字怎么办? (557) http://test.com/site.php?show=1?557

我该怎么做?

3 个答案:

答案 0 :(得分:2)

除了$ _GET [' show']这将是一个更容易的方式。

$url = "http://test.com/site.php?show=1?557"
$show = substr(strstr($url, '='), 1);
// $show = '1?557'
// same as: $show = $_GET['show'];
// Approach 1:
$pos = strpos($show, '?');
$first = substr($show, 0, $pos);
$second = substr($show, $pos + 1);
// Approach 2
list($first, $second) = explode('?', $show);

答案 1 :(得分:2)

如何循环$_GET数组?

foreach($_GET as $name => $value) {
      $$name = $value;
}

这在你的例子中会给你

$show = 1

它将分配所有此类GET参数。

演示:https://eval.in/473464

答案 2 :(得分:2)

使用正则表达式提取网址中的所有数字。

preg_match_all('/\d+/', $url, $matches); 

在上面的代码中,$ matches为您提供了url中的所有数字。 如果您想在每?后立即匹配数字,请使用/\?\d+/