0

away?to= の後に、URI で完全な文字列を取得する方法を探しています。

私のコード:

if (isset($_SERVER[REQUEST_URI])) {
    $goto = $_SERVER[REQUEST_URI];
}

if (preg_match("/to=(.+)/", $goto, $goto_url)) {

$link = "<a href='{$goto_url[1]}' target='_blank'>{$goto_url[1]}</a>";

元のリンクは次のとおりです。

https://domain.com/away?to=http://www.zdf.de/ZDFmediathek#/beitrag/video/2162504/Verschw%C3%B6rung-gegen-die-Freiheit-%281%29

..しかし、私のコードはaway?to= to onlyの後の文字列を切り取っています

http://www.zdf.de/ZDFmediathek

この preg_match 関数を修正して、 away?to= ??に続くすべての文字を実際に許可することはご存知でしょう。

アップデート:

$_SERVER['REQUEST_URI']または$_SERVER['QUERY_STRING']、すでに元の URL をカットしていることがわかりました。それを防ぐ理由と方法を知っていますか?

4

2 に答える 2

3

使用 (.*)してすべてを取得してみてくださいto=

$str = 'away?to=dfkhgkjdshfgkhldsflkgh';
preg_match("/to=(.*)/", $str, $goto_url);
echo $goto_url[1]; //dfkhgkjdshfgkhldsflkgh 
于 2014-05-28T10:07:32.497 に答える
0

リクエスト URI から正規表現を使用して URL を抽出する代わりに、$_GET 配列から取得できます。

$link = "<a href='{$_GET['to']}' target='_blank'>{$_GET['to']}</a>";
于 2014-05-28T10:22:13.760 に答える