我正在使用SimpleXML从xml文件将数据导入php数组。
我正在使用simplexml_load_file
函数,但是一旦我得到了我需要的数据,我是否需要关闭文件或类似文件以清除内存?
谢谢,
詹姆士
不,你不需要对文件做任何事情。 simplexml_load_file()
将在读取内容后在内部关闭该文件。
如果你看一下simplexml_load_file
的源代码,你会发现它正在调用C
函数xmlReadFile()
形式xmllib2,它会在读取后关闭文件。
PHP_FUNCTION(simplexml_load_file)
{
php_sxe_object *sxe;
char *filename;
int filename_len;
xmlDocPtr docp;
char *ns = NULL;
int ns_len = 0;
long options = 0;
zend_class_entry *ce= sxe_class_entry;
zend_bool isprefix = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|C!lsb", &filename, &filename_len, &ce, &options, &ns, &ns_len, &isprefix) == FAILURE) {
return;
}
docp = xmlReadFile(filename, NULL, options); <--- reading the file
如果你的意思是沿着fopen()
和fclose()
的行,那么没有..文件被解析并通过simplexml变成一个对象,如果你想要真正迂腐,你可以在完成它后取消设置对象。
无需关闭文件,因为在读取整个文件时它会自动关闭。但是,如果您因为服务器内存不足而要求,则应该查看内存消耗最多的服务器日志并将其释放。
simplexml_load_file
旨在让生活变得简单:)