4

SimpleXML を使用して、xml ファイルから php 配列にデータをインポートしています。

関数を使用していsimplexml_load_fileますが、必要なデータを取得したら、ファイルを閉じるなどしてメモリをクリアする必要がありますか?

ありがとう、

ジェームズ

4

3 に答える 3

7

いいえ、ファイルに対して何もする必要はありません。simplexml_load_file()コンテンツを読み取った後、ファイルを内部的に閉じます。

のソース コードを見ると、関数形式 xmllib2 をsimplexml_load_file呼び出していることがわかります。これにより、読み取り後にファイルが閉じられます。CxmlReadFile()

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
于 2012-11-23T10:50:49.953 に答える
1

の行に沿って、fopen()いいえfclose()..ファイルは解析され、simplexmlによってオブジェクトに変換されます。本当にペダントになりたい場合は、終了後にオブジェクトの設定を解除できます。

于 2012-11-23T10:51:36.470 に答える