Странное поведение: отсоединить не удаляя файлы в php - PullRequest
1 голос
/ 07 декабря 2009

Каким-то образом ссылка не удаляет файл. Если вы видите в файле, я копирую из $ input_file_path в $ processing_file_path, а затем после копирования. Я пытаюсь удалить файл в $ input_file_path, но почему-то он не удаляется, и мне действительно интересно, почему это происходит. Добрый совет.

<?php
ini_set('error_reporting',0);
$file = fopen("pid.txt","w+") or die('!fopen');
flock($file, LOCK_EX);

//Folder where xml files will be coming in from UPC
$incoming_file_path = "/home/xmlcontainer";
$processing_file_path = "/home/process_file";
$threshold = time() - 30;
foreach( glob($incoming_file_path.'/*')as $key => $value ) {
  if ( filemtime($value) <= $threshold ) {
    copy($incoming_file_path.$value,$processing_file_path.$value);
    print_r($incoming_file_path.$value."\n");
    unlink($incoming_file_path.$value);
    print_r($incoming_file_path.$value."\n");
    print_r($processing_file_path.$value."\n");
    }
}
flock($file,LOCK_UN);

?>

1 Ответ

1 голос
/ 07 декабря 2009

readdir () возвращает имя файла без пути. Итак, в вашем скрипте вместо filemtime(/home/xmlcontainer/TestInput.xml) выполняется только filemtime(TestInput.xml).

Кроме того, $ input_files содержит одно имя файла (в виде строки) в вашем цикле while. Вложенный foreach($incoming_files as ...) никогда не будет работать.

Кстати: почему вы форматируете отметку времени с помощью date (), а затем сравниваете полученные строки друг с другом?

$file = fopen("pid.txt","w+") or die('!fopen');
flock($file, LOCK_EX);

//Folder where xml files will be coming in from UPC
$incoming_file_path = "/home/xmlcontainer";
$processing_file_path = "/home/process_file";
$threshold = time() - 30;

foreach( glob($incoming_file_path.'/*') as $source ) {
  if ( filemtime($source) <= $threshold ) {
    // copy / move
    // process
    // unlink
  }
}
flock($file,LOCK_UN);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...