2014-11-21 4 views
0

PHP로 일반 파일을 업로드 중이므로 유효성을 검사하기 위해 업로드 된 파일의 첫 번째 행을 읽습니다 (이는 $line2과 같습니다). (파일에 여분의 공간이 없습니다 만) 문자열 비교는 항상 false를 반환합니다.

$line = file($target_file)[0]; 
$line2 = 'S01700006275696C642F697269732F6D61696E2E7372656343 '; 

echo $line; 
echo "<br>"; 
echo $line2;         

if($line === $line2){ 
    echo "<br>true"; 
}else{ 
    echo "<br>false";} 

내 출력을 확인, 나는 $line에서 프로그래머에게 여분의 공간을 발견, 그래서 $의 호선에 여분의 공간을 추가했습니다.

문제는 항상 false을 반환합니다. 나는 시도했다 :

if($line == $line2) 

뿐만 아니라

분명히 내가 $의 2 호선에서 여분의 공간을 제거하려고
if(strcmp($line,$line2)==0) 

+1

두 줄을 여기에 복사하여 붙여 넣으십시오. – slapyo

+2

당신은 여분의 공간을 –

+0

S01700006275696C642F697269732F6D61696E2E7372656343 S01700006275696C642F697269732F6D61696E2E7372656343 – Ching

답변

1

당신은 시도 할 수 있습니다 :

$line = file($target_file)[0]; 
$line2 = 'S01700006275696C642F697269732F6D61696E2E7372656343 '; 

echo $line; 
echo "<br>"; 
echo $line2;         

if(trim($line) === trim($line2)){ 
    echo "<br>true"; 
}else{ 
    echo "<br>false"; 
} 
0

을 당신이 원하는 경우 하나의 문자열이 단순히 다른 문자열을 포함하면 올바른 테스트가 b e if (strcmp($line,$line2) !== false). 당신이 공백을 무시하고, 평등을 테스트하려면

후 확인하여 추가 공백이 참으로 공간 if (trim($line) === trim($line2))

0

당신이 있습니까 사용할 수 있습니까? file (link)의 수동 입력에

는 말한다 :

배열에서 파일을 돌려줍니다. 배열의 각 요소는 파일의 줄에 해당하며 줄 바꿈이 계속 첨부됩니다.

그래서 비교가 실패한 것입니다. 이 같은 파일을 읽는

시도 :

$line = file($target_file, FILE_IGNORE_NEW_LINES)[0]; 

작동합니다.

관련 문제