我對php還是有些新鮮,想知道從url中提取$_GET
變量的最佳方法。如何正確提取獲取變量
例如怎麼樣把它出來的東西是這樣的:
http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957
只是想一切從「token=etc
...」
在此先感謝
我對php還是有些新鮮,想知道從url中提取$_GET
變量的最佳方法。如何正確提取獲取變量
例如怎麼樣把它出來的東西是這樣的:
http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957
只是想一切從「token=etc
...」
在此先感謝
一個簡單的方法:
$token = isset($_GET['token']) ? $_GET['token'] : null;
如果token
設置它被分配給$token
,否則$token
爲null。
$_GET
是陣列:
$token = $_GET['token'];
因此,如果您打印o UT,你應該看到的查詢字符串的標記部分:
echo "'Token: $token'"; // should display 'Token: 3072420e7e32cbcf304da791537d757342cf5957';
注意
如果你要使用$令牌來搜索一個mysql數據庫,你需要先逃避斜線,以防止安全問題:
$token = mysql_real_escape_string($_GET['token']);
而且,你首先需要有通話mysql_real_escape_string()
前MySQL連接。
注意V.2
在您的查詢字符串,您的令牌將是?token=
一切直到PHP遇到查詢關鍵字/對分隔符(通常,&
和;
)。即:
http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957&token2=otherstuff
&token2=otherstuff
將是另一個關鍵的訪問通過$_GET['token2']
,所以它不會是一個問題與$_GET['token']
。
所以,你實際上有一個URL 串,並希望提取值從:
$url = "http://www.example.com/reset_pw.php?token=3072420e7e32cbc...";
$p = parse_url($url); // splits up the url parts
parse_str($p["query"], $get); // breaks up individual ?var= &vars=
print $get["token"];
解決方案1:
$token = isset($_GET['token']) ? $_GET['token'] : null;
這裏如果變量是不返回null
解決方案2:
$token = $_GET['token'];
這就是我一直在努力,但它產生什麼 – LightningWrist 2011-02-03 23:03:15