2013-02-13 1 views
0

이상한 문제가 있습니다. $ ipList라는 배열을 가지고 있습니다.이 배열은 서비스에 전달할 특정 IP 주소를 보유하고 있습니다. 서비스 란 IP가 목록에 있는지 여부를 확인하기 위해 실행되는 API를 의미합니다. 이 점검은 컬 (curl) 세션을 통해 수행됩니다. 이 결과를 얻은 후 1 분 동안 실행됩니다. 내 배열을 인쇄했는데 그것은 공백입니다. 만약 내가 dint가 호출을 실행하면 배열을 출력 할 것이고, 나는 언젠가 후에 배열이 지워진다 고 생각한다.시간이 지나면 배열 값이 자동으로 지워집니다.

$ipList=getIpList(); //get iplist 
$res=checkService($ipList); //this is the function for checking through curl 
print_r($ipList); // try printing array 

내가 라인을 코멘트 경우는 인쇄 $res=checkService($ipList);

, 저 좀 도와주세요!

+0

나는 당신이'$ ipList' 변수를 전역 적으로 사용했다고 생각합니다. 코드를 다시 확인해야합니다. –

+3

이 함수의 코드를 보자.'checkService' –

+0

당신이 이미 정의한'$ iplist'를 출력하고'$ res'를 주석 처리하고 있습니다.'$ res'를 출력하려고한다면 빈 배열 –

답변

0

가장 가능성있는 일은 checkService 함수 ('API 호출')가 시간 초과되었습니다.

사실인지 확인하십시오. 그렇다면 checkService (또는 해당 스크립트)을 최적화하거나 PHP 시간 초과 간격을 늘리십시오.

예 :

set_time_limit (0); 

문서 :

void set_time_limit (int $seconds) 

http://php.net/manual/en/function.set-time-limit.php

설정 스크립트 실행이 허용되는 시간 (초). 도달 한 경우 , 스크립트는 치명적인 오류를 반환합니다. 기본 제한은 30 초 또는 존재하는 경우 php.ini에 정의 된 max_execution_time 값입니다.

호출되면 set_time_limit()는 제한 시간 카운터를 0에서 다시 시작합니다. 즉, 시간 초과가 기본값 인 30 초이고 스크립트 실행으로 25 초가 걸린 경우 set_time_limit (20)와 같은 호출은 이고 스크립트는 시간 초과되기 전에 총 45 초 동안 실행됩니다.

+0

내가 체크, set_time_limit 0으로 설정되어 있습니다. checkService의 출력은 배열의 연산 결과를 반환합니다. 그것은 잘 작동합니다, 그 이유는 의심 스럽습니다. 배열은 얼마 후에 지워집니다. – Kiran

+0

@Kiran Hmm ...'checkService' 코드도 보여 주시겠습니까? –

+0

죄송합니다. 코드를 표시 할 수는 없지만 시간이 걸리지는 않았지만 배열에서 연산 결과를 반환합니다. – Kiran