3

http://site.com/process.phpパラメータの1つとしてURLを受け取るphpスクリプトを呼び出します。for=

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のように見えるパラメーターであることを理解するにはどうすればよいですか?

4

2 に答える 2

3

URLをgetパラメータとして含める前に、urlencode

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

この関数は、URLのクエリ部分で使用される文字列をエンコードするときに、変数を次のページに渡すための便利な方法として便利です。


の結果を逆にするにはurlencode、を使用しますurldecode。マリオが以下のコメントで指摘しているように、$_GETパラメータはすでにurldecodedされています。

于 2011-02-11T12:39:55.347 に答える
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

于 2011-02-11T12:41:18.913 に答える