我正在尝试获取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可以更改为任何数字,但它始终是数字,就在最后一个/
之前答案 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 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']);