/ / Import SimpleXML do PHP. Czy muszę zamknąć plik? - php, xml, simplexml

Import SimpleXML do PHP. Czy muszę zamknąć plik? - php, xml, simplexml

Importuję dane do tablicy php z pliku xml przy użyciu SimpleXML.

Używam simplexml_load_file funkcji, ale gdy już mam potrzebne dane, czy muszę zamknąć plik lub podobny, aby wyczyścić pamięć?

Dzięki,

James

Odpowiedzi:

5 dla odpowiedzi № 1

Nie, nie musisz nic robić z plikiem. simplexml_load_file() zamknie plik wewnętrznie po przeczytaniu treści.

Jeśli spojrzysz na kod źródłowy dla simplexml_load_file, zobaczysz, że dzwoni C funkcjonować xmlReadFile() formularz xmllib2, który z kolei zamknie plik po przeczytaniu.

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 dla odpowiedzi nr 2

Jeśli masz na myśli fopen() i fclose() potem nie .. plik jest parsowany i zamieniany w obiekt przez simplexml, jeśli chcesz być naprawdę pedantyczny, możesz rozbroić obiekt po jego zakończeniu.