2014-02-24 1 views
0

기본 URL을 인코딩하려고합니다. 문제는 각 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

파일의 각 행은 windows newlines라고도 "\r\n" (16 진수 값과 0xa는 0xD)로 끝난다.

단순히 줄 바꿈 제외됩니다 file()에 호출에 FILE_IGNORE_NEW_LINES 플래그를 사용하여 인코딩하기 전에,

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

를 또는 후행 공백을 제거하기 위해 각 줄에 rtrim() 함수를 사용

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

인코딩을 사용 했으므로 원치 않는 문자가 표시됩니다. urlencode 대신 urldecode를 시도하십시오 이게 도움이 될 수도 있습니다 :-)

관련 문제