|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2005-02-10 20:11 UTC] du at bestwaytech dot com
Description:
------------
In order to load custom functions I write them to temporary file, check syntax and load only if syntax correct. When syntax validates, everything is fine. When syntax is incorrect, I am unable to delete the created temporary file.
Reproduce code:
---------------
$function = '<?php function test1(){ $x = 1; } ?>';
$file = tempnam("c:", "scr");
$handle = fopen($file, "w+");
fwrite($handle, $function);
if (!php_check_syntax($file)) {
echo "syntax error - ";
} else {
echo "syntax ok - ";
}
if (fclose($handle)) {
echo "closed - ";
} else {
echo "not closed - ";
}
if (unlink($file)) {
echo "deleted";
} else {
echo "not deleted";
}
Expected result:
----------------
syntax error - closed - deleted
Actual result:
--------------
syntax error - closed -
Warning: Unknown: Permission denied in Unknown on line 0
not deleted
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 23:00:01 2025 UTC |
This happens because of this, found in main/main.c:1746-1755 zend_try { op_array = zend_compile_file(file, ZEND_INCLUDE... zend_destroy_file_handle(file TSRMLS_CC); ... } zend_end_try The zend_destroy_file_handle() is never called if there are any parse errors in the file as zend_compile_file() throw a zend_bailout(). Assigned to Ilia.