-1
$url = parse_url('https://plus.google.com/+erikedgren');
$address = ltrim(rtrim($url['path'], '/'), '/');
echo $address;

$address出力しますplus.google.com/ erikedgren。なんで?そして、どうすればこの問題を解決できますか?

編集

上記のコードは を出力します+erikedgren。しかし、アドレス$url$_GET['u'](from parse_url(https://plu...)to parse_url($_GET['u']))に置き換えると、 plus.google.com/ erikedgren. 私のシステムがどのように機能するかを説明しましょう。

ローカル サーバーで自分の Web サイトのリンクをクリックすると (まだ更新プログラムをリリースしていません)、extern アドレスの URL は次のようになりますhttp://192.168.1.135/erik-edgren/url/https://plus.google.com/+erikedgren

外部アドレスの最後の部分は、$_GET['u']フェッチしているものです。RewriteRule は次のようになりますRewriteRule ^url/(.*)$ get-url.php?u=$ 1($ と 1 の間にスペースはありません)。

4

2 に答える 2

0

https://plus.google.com/+erikedgrenURLの末尾に含める前にURL をエンコードします。URL エンコードされていない場合、+ はスペースです。

于 2016-04-20T19:10:51.563 に答える
0

あなたの更新された質問に基づいて、これは私にとってうまくいくようです:

$url = parse_url($_GET['u']);
$address = trim(rawurldecode(urlencode($url['path'])), '/');
echo $address;

ltrimとも置き換えました。これは、最初と最後の両方から削除されるためですrtrimtrim

于 2016-04-20T19:26:17.133 に答える