آزادسازی parser (xml_parser_free)
تابع xml_parser_free برای آزادسازی پارسر است. «پارسر (Parser)» متن XML را می خواند و بخش بندی می کند. مثل بعد امتحان که برگه ها را جمع می کنیم و پوشه را می بندیم.
تعریف و کاربرد
طبق منبع، xml_parser_free(<parser>) منابع پارسر XML را آزاد می کند. بنابراین، پس از پایان پردازش، حتماً آن را صدا بزنید تا حافظه هدر نرود.
سینتکس (Syntax)
xml_parser_free(<parser>)
parser: همان شیء پارسر ساخته شده با xml_parser_create.
مثال: ساخت، پارس، سپس آزادسازی
<?php
// ساخت یک XML parser
$parser = xml_parser_create();
// تنظیم هندلر داده متنی
function char_handler($parser, $data) {
echo $data;
}
xml_set_character_data_handler($parser, "char_handler");
// باز کردن فایل XML
$fp = fopen("note.xml", "r");
// خواندن تکه ای و پارس کردن
while ($data = fread($fp, 4096)) {
$isEnd = feof($fp);
$ok = xml_parse($parser, $data, $isEnd);
if (!$ok) {
$err = xml_error_string(xml_get_error_code($parser));
$line = xml_get_current_line_number($parser);
die(sprintf("XML Error: %s at line %d", $err, $line));
}
}
// آزادسازی پارسر و بستن فایل
xml_parser_free($parser);
fclose($fp);
?>
گام های عملی
- پارسر را با xml_parser_create بساز.
- هندلرها را تنظیم کن؛ مثلاً کاراکترها یا تگ ها.
- فایل را باز کن و داده را تکه ای بخوان.
- با xml_parse پارس را انجام بده.
- در پایان،
xml_parser_freeرا حتماً فراخوانی کن.
نکته: آزادسازی منابع مثل بستن بازی در موبایل است؛ حافظه آزاد می شود و گوشی روان تر می ماند.
هشدار: فراموشی xml_parser_free() می تواند باعث نشت حافظه شود، مخصوصاً در اسکریپت های طولانی.
پیوندهای مفید
W3Schools: xml_parser_free — تعریف و مثال رسمی.
W3Schools: xml_parser_create — روش ساخت پارسر.
جمع بندی سریع
- پس از اتمام کار، پارسر را آزاد کن.
- آزادسازی، حافظه را برمی گرداند.
- خطاها را قبل از آزادسازی بررسی کن.
- فایل را هم فراموش نکن ببندی.