目前我正在努力使其如果我的标题在标题中包含&
,它将通过下面的网址。
dl.php?&u='.$mp3.'&n='.$auth2.'
目前我有以下代码
$auth = urlencode($title2);
$auth2 = urldecode($auth);
$title2 = 'Artist - Song Name (Feat. Another Artist & Last Artist)';
您可以在下方看到$title2
部分包含&
符号,如果此符号通过我们的网址,则下载将如下Artist - Song Name (Feat. Another Artist)
,将最后一位艺术家留在MP3名称中
感谢任何帮助。
答案 0 :(得分:2)
您需要先修复此网址,以便以后可以正确解析。使用http_build_query
:http://php.net/http_build_query,它会为您正确地编码内容
'dl.php?' . http_build_query(array('u' => $mp3, 'n' => $auth2));
答案 1 :(得分:1)
如果你urlencode $title2
,你就不会遇到这个问题。
$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;
答案 2 :(得分:1)
你可以这样做:
<强> dl.php?&u='.urlencode($mp3).'&n='.urlencode($title2).'
强>
这会对您的标题和网址进行编码,如下所示:
<强> 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;