2016-07-29 2 views
0

現在、私のタイトルにタイトルに&が含まれていると、下のURLを通過するようにしています。タイトルの改行の変数

dl.php?&u='.$mp3.'&n='.$auth2.' 

現在、私は次のコード

$auth = urlencode($title2); 
$auth2 = urldecode($auth); 
$title2 = 'Artist - Song Name (Feat. Another Artist & Last Artist)'; 

を持っていますが、これは私たちのURLを通過する場合は、ダウンロードが最後を除外このArtist - Song Name (Feat. Another Artist)次のようになります、$title2部分は&記号が含まれていることを下記を参照することができますアーティストのMP3の名前です。

ご協力いただきありがとうございます。

+0

あなたは '$ title2' var 2つの行のトップにいらっしゃいますか?その後何が起こるのですか? –

+1

'rawurlencode($ title2)' – bishop

+0

@bishopは動作していないようです。以前にも、私が間違ってやっていることは、これまでのところ、基本的には既に行われていることを指摘しています。 – Open

答えて

2

後で正しく解析できるように、URLを最初に修正する必要があります。 http_build_query使用:http://php.net/http_build_queryは、それはあなた

'dl.php?' . http_build_query(array('u' => $mp3, 'n' => $auth2)); 
+0

このメソッドは、私の問題を解決したようです、ありがとう男! – Open

+0

ようこそ。私のお気に入りのPHP関数の1つ – charmeleon

+0

非常に便利で、むしろ動揺していました。 – Open

1

正しく物事をURLENCODEますあなたは$title2をURLENCODE場合、あなたはこの問題を持っていません。また

$title2 = urlencode('Artist - Song Name (Feat. Another Artist & Last Artist)'); 

、あなたはあなたのクエリ文字列を構築するためにhttp_build_query()を使用することができます。

$params = [ 
    'u' => $mp3, 
    'n' => $title2 
]; 
$queryString = http_build_query($params); 
$url = 'dl.php?' . $queryString; 
1

あなたがこれを行うことができます:

dl.php?&u='.urlencode($mp3).'&n='.urlencode($title2).'

をこれはあなたのタイトルとURLをエンコードするだろうこのように:

dl.php?&u=MP3contentwillcomehere&n=Artist+-+Song+Name+%28Feat.+Another+Artist+%26+Last+Artist%29

または使用することができますhttp_build_query

$mp3 = "MP3 content"; 
$name = "Artist - Song Name (Feat. Another Artist & Last Artist)"; 
$build = http_build_query(array('u' => $mp3, 'n' => $name)); 

た出力は以下となります。 U = MP3 +コンテンツ&のn =アーティスト+ - +歌+名+%28Feat +別+アーティスト+%26 +最後+アーティスト%29

"dl.php?".$build;