php explode从url获取最后一个整数

时间:2013-08-23 18:52:42

标签: php

我正在尝试获取url中的最后一个整数我使用php explode,它给出了/之后的最后一个值但是我不知道如何在/

之前得到最后一个整数

我的网址是

    http://way2enjoy.com/touch/w2et/quotesalphalist.php?page=124/ABCD

我有兴趣从上面的网址中获取124。

我可以使用下面的爆炸代码获得最后一个ABCD值,但不知道如何获得124

    $c=explode("/",$_SERVER[ 'REQUEST_URI' ]);  $city=end($c); 

请建议如何从上面的url.please中获得124个整数,请注意,这个124可以更改为任何数字,但它始终是数字,就在最后一个/

之前

6 个答案:

答案 0 :(得分:2)

这可能不是正则表达式的工作,而是适用于您选择的语言的现有工具。正则表达不是一个魔术棒,您可以在遇到涉及字符串的每个问题上挥手。您可能希望使用已编写,测试和调试的现有代码。

在PHP中,使用parse_url函数。

Perl:URI module

Ruby:URI module

.NET:'Uri' class

答案 1 :(得分:1)

$c = explode('=',$_SERVER[ 'REQUEST_URI' ]);
$result = explode('/', end($c));
echo $result[0];

答案 2 :(得分:0)

我没有方便的PHP安装来测试这个,但只要数字在最后/ 之前,那么这样的东西应该可以工作:

$string = "http://way2enjoy.com/touch/w2et/quotesalphalist.php?page=124/ABCD"
$matches = array();

if(preg_match("/(\d+)\/[^/]+$/",$string,$matches)){
  echo $matches[1] . "\n";
}
else{
  echo "Not matched!\n";
}

答案 3 :(得分:0)

<?php
    $digit = explode("/", $_GET['page']);
    echo $digit[0];
    /// or using preg_match
    preg_match("/(\d+)\//", $_GET['page'], $matches);
    echo $matches[1];

答案 4 :(得分:0)

您需要使用parse_urlparse_str

// Parse the URL into its components
$url = parse_url($_SERVER['REQUEST_URI']);

// Parse the query string into the $out array
parse_str($url['query'], $out);

// Echoes out `124/ABCD`
echo $out['page'];

如果您只想获取数字部分,则可以在字符串上运行快速preg_replace

// Echoes `124`
echo preg_replace("/[^0-9]/", "" , $out['page']);

答案 5 :(得分:0)

使用$ _GET:

$page = explode('/',$_GET['page']);
echo $page[0]; // 124


$_GET['page'] = "124/gea2ABC23gaga1D";
echo (int) $_GET['page']; // 124

使用请求URI:

$_SERVER[ 'REQUEST_URI' ] = 'http://way2enjoy.com/touch/w2et/quotesalphalist.php?page=124/ABCD42141';

if(preg_match("/page=(\d+)/",$_SERVER[ 'REQUEST_URI' ],$matches)){
    echo $matches[1];
}
如果参数的第二部分有数字,

不建议使用:

$_GET['page'] = "124/gea2ABC23gaga1D"; // -> 1242231 !
echo preg_replace("/[^0-9]/", "" , $_GET['page']);