2013-08-23 40 views
2

我想要得到最後一個整數在我使用PHP爆炸它給出了最後一個值之後/但我不知道如何獲得最後一個整數只是之前/php爆炸從url得到最後一個整數

我的網址是

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

我很感興趣,從上面的URL獲取124。

我能得到的最後一個值ABCD與下面的爆炸代碼,但不知道怎麼弄124

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

請建議如何讓124像整數從上面url.please注意,這124毫安ÿ更改爲任何號碼,但將永遠數量,只是之前的最後/

+3

對於ge不是更好嗎? $ _GET ['page']的t值然後爆炸呢? –

+1

是的,使用$ _GET會更好,但有一個問題仍然存在,爲什麼要將/ ABC添加到get變量中,以便稍後將其刪除?也許你可以使用多個變量?page = 124&letters = ABCD? –

+0

@ThomasLang某種奇怪的路由,也許? – ILikeTacos

回答

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

感謝作品像魅力。你能解釋一下上面的代碼嗎? – chetna123

+0

他在'='符號處爆炸,所以你只能在你的變量中留下1234/ABCD,然後他再次爆炸'/'並得到第一個索引。或者他可以這樣做:$ c = explode('/',$ GET ['page']); echo $ c [0];相同的結果。 – ILikeTacos

+0

@AlanChavez謝謝你解釋 – chetna123

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"; 
} 
0
<?php 
    $digit = explode("/", $_GET['page']); 
    echo $digit[0]; 
    /// or using preg_match 
    preg_match("/(\d+)\//", $_GET['page'], $matches); 
    echo $matches[1]; 
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']); 
+0

好吧,你讓它太複雜了! – revo

2

這可能不是一個工作,正則表達式,但對於您所選擇的語言現有的工具。正則表達式不是一個魔術棒,你在涉及字符串的每一個問題上都會揮手致意。您可能想要使用已經編寫,測試和調試的現有代碼。

在PHP中,使用parse_url函數。

Perl:URI module

紅寶石:URI module

.NET:'Uri' class

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']);