0

ダウンロードURL、ダウンロードカウンターデータファイルのURL、ダウンロード後に戻るページなどの引数を取るダウンロードページがあります。それは次のように配置されます:

start.php?url=...&page=...&file=...
(Download url, redirect page, counter file)

問題は、リダイレクトページに?を含むPHP引数が含まれている場合です。および&記号の場合、URLはPHPが機能するための混乱を招く混乱になります。

例:

start.php?url=URLTEXT&page=page?test1=x&test2=xx&file=FILETEXT

何が起こるべきか:

url=URLTEXT
page=page?test1=x&test2=xx
file=FILETEXT

何が起こるのですか:

url=URLTEXT
page=page?test1=x
test2=xx
file=FILETEXT

どうすれば文字を置き換えることができますか、またはどういうわけかこれらの引数をphpで正しく渡すことができますか?

あなたが与えることができるどんな助けにも感謝します。

4

2 に答える 2

2

さて、あなたの「めちゃくちゃな」URLがどのように見えるかはわかりません。ただし、「?」の後の文字列 クエリ文字列と呼ばれ、でデコード/エンコードできます

urlencode($normalString); //will be encoded for use in URL
urldeocde($queryString); //will be decoded for "normal" use

編集:

ここにいくつかの短い例があります:

echo "Encode for use in URL: ";
echo urlencode("this is a string & üäöllasdlk<bbb2");
echo "<br />";

echo "Decode to use it in your script: ";
echo urldecode($_SERVER['QUERY_STRING']);

出力:

URLで使用するためのエンコード:this + is + a + string +%26 +%C3%BC%C3%A4%C3%B6llasdlk%3Cbbb2スクリプトで使用するためにデコードします:test = 12

(変数を含むクエリ文字列があると仮定しますtest=12

于 2013-01-04T20:35:04.470 に答える
-3

URL文字列でhtmlspecialchars関数を使用するだけです:http: //php.net/manual/en/function.htmlspecialchars.php

于 2013-01-04T20:30:40.180 に答える