PHP에서 헤더()와 함께 루프는 기본적으로 같은 구조를 가지고 몇 가지 포인트를 지오 코딩하는 동안 :내가 스크립트를 작성했습니다
//get an unupdated record
$arr_record;
while(count($arr_record) > 0)
{
//strings are derived from $arr_record
geocode($string1);
geocode($string2);
geocode($string3);
array_pop($arr_record);
}
function geocode($string) {
//if successful
update($coords)
}
function update($coords) {
//update the database
header('Location:http://localhost/thisfile.php')
}
문제는입니다 지오 성공하고 데이터베이스 경우에도 이 헤더가 다시 보내지면 스크립트는 페이지를 다시로드하고 새 레코드에서 다시 시작하지 않고 while 루프로 돌아갑니다.
PHP의 정상적인 동작입니까? 어떻게 이런 식으로 행동하지 않습니까?
약간 혼란 스럽습니다. 왜 페이지를 새로 고침해야합니까? – xenon
적합성을 위해 다음과 같이 공백을 두는 것을 고려하십시오. -'Location : http ...'- exit(); – gahooa
페이지를 다시로드하는 이유는 CGI로 PHP를 실행할 수 없으며 한 페이지에 너무 많은 시간을 반복하도록 지시하면 시간이 초과된다는 것입니다. 페이지를 다시로드하면 시간 초과없이 원하는만큼 반복 할 수 있습니다. – wheresrhys