2014-02-24 1 views
2

다음 스크립트는 브라우저에서 제대로 작동합니다. 하지만 cron 작업에서 오류가 발생합니다.PHP 함수 fgetcsv()가 cron 작업 중 오류를 발생합니다.

fgetcsv 매개 변수 (1) 자원이 될 것으로 예상, 부울

도와주세요

을 부여.

코드 :

$handle = fopen("http://www.spc.noaa.gov/climo/reports/today_hail.csv", "r"); 

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
    $import="INSERT into mytable Values('" . mysql_real_escape_string($data[0]) . "','$data[1]','" . mysql_real_escape_string($data[2]) . "','" . mysql_real_escape_string($data[3]) . "','" . mysql_real_escape_string($data[4]) . "','$data[5]','$data[6]','" . mysql_real_escape_string($data[7]) . "')"; 

    mysql_query($import) or die(mysql_error());   
} 
fclose($handle); 
+0

설명에 따르면'fopen()'은'true'를 반환합니다 : -! –

+0

Windows 또는 Linux를 사용하고 있습니까? fopen의 file_get_contents() insten을 시도해 볼 수 있습니까? – Shin

+0

@shin 나는이 경우에 fopen이 더 좋다고 생각하지 않습니까? – Dexpras

답변

2

그것은 당신의 권한이 될 것입니다.

사용 권한 &의 파일 소유권이 올바르게 구성되었는지 확인하십시오. 브라우저에서 실행할 수 있지만 cron에서 실행되지 않는 것은 항상 권한 문제를 나타냅니다.

+0

특히, cron은 웹 서버와 다른 사용자로 실행됩니다 (그리고 PHP는 암시 적으로). 이 다른 사용자는 읽으려는 파일에 대해 올바른 권한을 갖고 있지 않습니다. –

+0

그것은 "매개 변수 1은 리소스, 부울 ***은 ***이 될 것으로 기대합니다"라고 말합니다. "파일 핸들 리소스를 제공 해주십시오. _not_ a boolean"과 같습니다. –

+0

@SergiuParaschiv 그렇습니다. 문제는 여전히 권한으로 생각됩니다. – Dexpras