2017-03-18 2 views
0

다른 서버에서 데이터를 가져 오는 간단한 스크립트가 있으며 1 분마다 실행됩니다.쓰기 전에 데이터 확인

<?php 
$html = file_get_contents('http://google.com/data.php'); 


$myfile = fopen("data.html", "w") or die("Unable to open file!"); 

fwrite($myfile, $html); 
fclose($myfile); 

?> 

그러나 언젠가는, 스크립트는 data.html에 빈 데이터를 기록. 내 서버와 원격 서버 또는 대상 파일 사이의 연결 문제가 언젠가 비어 있기 때문에 나는 생각한다.

데이터가 비어 있지 않으면 데이터를 확인한 다음 데이터를 비워두면 나가는 지 궁금합니다. 어떻게 도와 드릴까요. 감사!

+0

'if'는'empty'로 동작합니다. http://php.net/manual/en/control-structures.if.php http://php.net/manual/en/function.empty .php. – chris85

+0

@ chris85는 페티 멘터 리가되고 싶지는 않지만''0 ''도 빈 것으로 간주합니다. 아마도'data.php' 스크립트의 유효한 출력 일 것입니다 ... – ewcz

+0

@ewcz 오, 좋은 요점, 코드 및 설명 다르다. HTML (data.html)이라고 생각했습니다. – chris85

답변

0
오류에

file_get_contents 반환 false, 그래서 당신은 단지 출력이 비어 있는지 여부를 테스트하려면 직접

<?php 
$html = file_get_contents('http://google.com/data.php'); 

if($html !== false){ 
    $myfile = fopen("data.html", "w") or die("Unable to open file!"); 

    fwrite($myfile, $html); 
    fclose($myfile); 
} 

?> 

=== 또는 !==를 사용하여 확인할 수 있습니다, 당신은 예를 들어, 비교를 사용할 수 있습니다 $html !== false && $html !== ''

관련 문제