http://www.example.com?id=05
http://www.example.com?id=05&name=johnny
這是一個字符串。我想從中得到$id
的價值。
它的正確模式是什麼?
http://www.example.com?id=05
http://www.example.com?id=05&name=johnny
這是一個字符串。我想從中得到$id
的價值。
它的正確模式是什麼?
@ PhpMyCoder的解決方案非常完美。但是,如果你確實需要使用的preg_match(雖然完全沒有必要在這種情況下)
$subject = "http://www.mysite.com?id=05&name=johnny";
$pattern = '/id=[0-9A-Za-z]*/'; //$pattern = '/id=[0-9]*/'; if it is only numeric.
preg_match($pattern, $subject, $matches);
print_r($matches);
+1餵養我的自我:P和回答所要求的問題 – 2012-07-29 05:55:47
問題表明'id'不一定是數字。 – 2012-07-29 05:58:31
編輯答案涵蓋字母數字查詢。謝謝。 – 2012-07-29 06:00:57
你不需要正則表達式(和你不應該跳直在未來的正則表達式,除非你有一個很好的理由) 。
使用與PHP_URL_QUERY
,它檢索查詢字符串。然後將其與parse_str()
配對。
$querystring = parse_url('http://www.mysite.com?id=05&name=johnny', PHP_URL_QUERY);
parse_str($querystring, $vars);
echo $var['id'];
正是我在想什麼。只是刷新,看到你的答案+1。 – 2012-07-29 05:48:57
其實我沒有理由,只是爲了學習的目的,我想我沒有提到它就犯了一個錯誤。 – user1091856 2012-07-29 05:49:37
@ user1091856有些情況適合,但一般來說你應該首先查找一個內部的(PHP提供的)方式,然後看看它是否可以通過字符串操作來實現(可能使用'explode()'),*然後*嘗試正則表達式。 – 2012-07-29 05:55:02
你有關於什麼將在ID參數的信息?所有數字? – 2012-07-29 05:44:42
可能是任何東西。 – user1091856 2012-07-29 05:45:30
爲什麼在使用'$ params = parse_str(parse_url($ url,PHP_URL_QUERY))'時使用preg_match?您的解決方案是否只需要使用preg_match?那樣你可以檢查'$ params ['id']'來獲得你的價值? – 2012-07-29 05:46:10