SimpleXML导入PHP。我需要关闭文件吗?

时间:2012-11-23 10:44:13

标签: php xml simplexml

我正在使用SimpleXML从xml文件将数据导入php数组。

我正在使用simplexml_load_file函数,但是一旦我得到了我需要的数据,我是否需要关闭文件或类似文件以清除内存?

谢谢,

詹姆斯

3 个答案:

答案 0 :(得分:6)

不,你不需要对文件做任何事情。 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

答案 1 :(得分:1)

如果你的意思是fopen()fclose(),那么没有..文件被解析并通过simplexml变成一个对象,如果你想真的很迂腐,你可以在之后取消设置对象你完成了它。

答案 2 :(得分:0)

不需要关闭文件,因为在读取整个文件时它会自动关闭。但是,如果由于服务器内存不足而询问,则应查看服务器日志中最消耗内存的地方并释放它。

simplexml_load_file是为了简化生活:)