我正在使用SimpleXML從xml文件將數據導入到php數組中。將SimpleXML導入到PHP中。我需要關閉文件嗎?
我使用的是simplexml_load_file
函數,但是一旦我得到了我需要的數據,是否需要關閉文件或類似的內容才能清除內存?
感謝,
詹姆斯
我正在使用SimpleXML從xml文件將數據導入到php數組中。將SimpleXML導入到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的,如果你想成爲真正的迂腐你完成之後,你可以取消設置對象用它。
謝謝戴爾,這有助於很多:-) –
再次感謝MrCode,這是一個很好的幫助:-) –