Один из моих PHP-скриптов записывает данные в файл. Это выполняется без проблем. Однако мой тестовый код, который вызывает те же методы таким же образом и (с целью устранения этой проблемы) находится в том же каталоге, сообщает:
failed to open stream: Permission denied
ошибка.
Мой правильно исполняемый скрипт просто:
try {
$printer = new PDFPrinter();
$FDFData = $printer->assembleFDFData(5);
$fdf_file = $printer->writeFDFFile($FDFData);
$printer->downloadForm($fdf_file);
}catch(Exception $e) {
echo $e->getMessage();
}
и мой тестовый код:
function setUp() {
$this->printer = new PDFPrinter();
$this->FDFData = $this->printer->assembleFDFData(5);
}
function testWrite() {
try {
$this->printer->writeFDFFile($this->FDFData);
$this-assertTrue(true);
} catch(Exception $e) {
$this->assertTrue(false);
}
}
Я знаю, что тестовый код testWrite плох, но я просто хочу, чтобы он прекратил выдавать это исключение первым.
Сценарий выдает исключение при выполнении метода writeFDFFile($this->FDFData);
, когда пытается открыть файл для записи. Это код, который не работает:
$fp=fopen($fdf_file,'w')
Я не понимаю, как 2 файла в одном каталоге с одинаковыми разрешениями могут работать по-разному при выполнении одного и того же кода.
Что я мог делать не так?
Большое спасибо