2014-02-24 31 views
0

我想編碼一個基址;問題是我在每個url的末尾都會收到不需要的字符。你能幫我調試我的代碼,刪除這些字符?url編碼返回不需要的字符

<?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 

回答

1

在文件中的每一行與"\r\n"(十六進制值爲0xD和是0xA),也被稱爲windows newlines結束。

使用FILE_IGNORE_NEW_LINES標誌上調用file(),這將簡單地排除換行符:

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

或者使用rtrim()功能上的每一行擺脫尾隨空白的,在編碼之前:

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

您使用的編碼,這就是爲什麼不需要的字符來了。嘗試urldecode而不是urlencode 可能是這一個對你有幫助:-)