대개 사람들이 스크립트가 작동하지 않는다고 불평하지만, 멈추고 싶어도 계속 작동하는 경우가 있습니다.PHP 스크립트가 실패 할 때 계속 작동합니다.
필자는 줄을 분석하고 DB 테이블에 항목을 삽입하는 CSV 파서를 사용합니다. 프로젝트에 PDO와 Zend Framwork를 사용하고 있습니다. 코드가 잘 작동 .. 사실 너무 잘.
public function save()
{
$memory_limit = ini_get('memory_limit');
ini_set('memory_limit', '512M');
$sql = "
INSERT INTO my_table (
date_start,
timeframe,
type,
country_to,
country_from,
code,
weight,
value
) VALUES (?,?,?,?,?,?,?,?)
ON DUPLICATE KEY UPDATE
weight = VALUES(weight),
value = VALUES(value)
";
if ($this->test_mode) {
echo $sql;
return;
}
$stmt = new Zend_Db_Statement_Pdo($this->_db, $sql);
foreach($this->parsed_data as $entry){
$stmt->execute(array_values($entry));
$affected_rows = $stmt->rowCount();
if ($affected_rows){
$this->_success = true;
}
}
unset($this->parsed_data, $stmt, $sql);
ini_set('memory_limit', $memory_limit);
}
큰 파일을 구문 분석 할 때 스크립트를 완료하는 데 몇 초가 걸립니다. 이 문제는 ESC 또는 심지어 페이지를 닫음으로써 스크립트를 중지하려고 할 때 나타납니다. 스크립트는 모든 항목을 삽입 할 때까지 중지되지 않습니다. 아파치를 재 장전하는 것조차이 문제를 고치지 않고있다.
나는 이것이 정상적인 행동이 아니며 어쩌면 내가 잘못된 제안을하고 있으므로 제안을 요청할 것이라고 생각합니다.
감사합니다. '브라우저가 사라질가 승리 의미하지 않는다해서 -
실행중인 스레드는 실행중인 스레드입니다. 이것을 고려하십시오 : 한 폴더에서 다른 폴더로 대용량 파일을 복사하기 시작하면 너무 오래 걸리고 파일 복사를 시작한 파인더/탐색기 창을 닫으면 파일 전송이 중지됩니까? 네가 여기서 똑같은 문제를 겪을 것을 기대한다. – DampeS8N
PHP를 스크립팅 언어로 사용하려는 것 같습니다. 더 많은 제어권을 얻기 위해 브라우저가 아닌 명령 행 인터프리터에서이 코드를 실행할 수 있습니다. –