url编码返回不需要的字符

时间:2014-02-24 13:31:00

标签: php

我正在尝试编码基本网址;问题是我在每个网址的末尾都有不需要的字符。你可以帮我调试我的代码去除这些字符吗?

<?php

$names = file('query-file.txt');
$baseUrl = 'whois.whoisxmlapi.com/';
foreach($names as $name) {
    $url = $baseUrl . urlencode($name);
    $record = rtrim($url);
    echo $record.'<br>';
}

?>

输出

whois.whoisxmlapi.com/google.com%0D%0A
whois.whoisxmlapi.com/cnn.com%0D%0A
whois.whoisxmlapi.com/msn.com%0D%0A
whois.whoisxmlapi.com/hotmail.com%0D%0A
whois.whoisxmlapi.com/yahoo.com%0D%0A
whois.whoisxmlapi.com/gmail.com

2 个答案:

答案 0 :(得分:1)

文件中的每一行以"\r\n"结尾(十六进制值0xD和0xA),也称为windows newlines

file()的来电时使用FILE_IGNORE_NEW_LINES标记,这只会排除换行符:

$names = file('query-file.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

或者在编码之前使用每行上的rtrim()函数来删除尾随空格:

$url = $baseUrl . urlencode(rtrim($name));

答案 1 :(得分:0)

你使用了编码,这就是为什么不需要的角色来了。尝试urldecode而不是urlencode 可能这个对你有帮助:-)