2011-02-11 40 views
3

我調用一個php腳本http://site.com/process.php,它將url作爲其參數之一。 for=當參數之一是url時,parse_url()問題

http://site.com/process.php?for=http://www.anotherwebsite.com 

然後我做到這一點,並試圖parse_url()但parse_url()給出瞭解析錯誤。

$uri = $_SERVER['REQUEST_URI']; // /process.php?for=http://www.anotherwebsite.com 
parse_url($uri); 

我怎麼能編碼for參數無論是在發送側(URL),或在接收端(PHP),這樣parse_url()明白,這只是碰巧看起來像一個URL參數?

+0

您需要對查詢字符串值進行URL編碼。 – BoltClock 2011-02-11 12:41:19

+0

'$ _GET ['for']`給你什麼?它是你感興趣的`for`參數嗎? – 2011-02-11 12:46:23

回答

2

哦,首先你必須urlencode()for=參數,然後在process.php,你可以簡單地做

$url = $_GET["for"]; 
$url = urldecode($url); // http://www.anotherwebsite.com 

這裏的功能是: http://php.net/manual/en/function.urlencode.php http://php.net/manual/en/function .urldecode.php

3

之前,包括您的網址爲get參數,使用urlencode

$full_url = 'http://site.com/process.php?for=' . urlencode('http://www.anotherwebsite.com'); 

此功能在方便的時候到一個URL的 查詢部分使用 編碼字符串,爲方便 方式將變量傳遞到下一個 頁面。


要反轉的urlencode的結果,使用urldecode。正如馬里奧在下面的評論中指出的,$_GET參數已經被urldecoded了。

+0

每天學習新東西,謝謝@mario :)用你的信息編輯我的答案。 – 2011-02-11 12:47:26