libxml

PHP مجموعهای از توابع libxml را برای کار با اسناد XML ارائه میدهد. این افزونه برای بسیاری از عملیات مبتنی بر XML در PHP، از جمله DOM، SimpleXML و XSLT مورد نیاز است.
توابع رایج libxml در PHP
در اینجا برخی از توابع پرکاربرد libxml
آورده شده است:
libxml_use_internal_errors(bool $use_errors = false): bool
- فعال یا غیرفعال کردن مدیریت داخلی خطاها.
- اگر مقدار
true
تنظیم شود، خطاها بهصورت داخلی ذخیره شده و میتوان از طریقlibxml_get_errors()
آنها را بازیابی کرد. - مثال:
libxml_use_internal_errors(true);
libxml_get_errors(): array
- یک آرایه از اشیاء
LibXMLError
را برمیگرداند که شامل تمام خطاهای رخداده است. - مثال:
$errors = libxml_get_errors();
foreach ($errors as $error) {
echo “خطا: “ . $error->message;
}
libxml_get_last_error(): ?LibXMLError
- آخرین خطای XML را برمیگرداند یا
null
اگر خطایی رخ نداده باشد. - مثال:
if ($error = libxml_get_last_error()) {
echo “آخرین خطا: “ . $error->message;
}
libxml_clear_errors(): void
- بافر خطاها را پاک میکند.
- این تابع برای ریست کردن خطاها قبل از پردازش XML جدید مفید است.
libxml_disable_entity_loader(bool $disable = true): bool
(در PHP 8.0 منسوخ شده و در نسخه 8.0.0 حذف شده است)
- قبلاً برای جلوگیری از حملات XXE (XML External Entity) استفاده میشد.
libxml_set_external_entity_loader(?callable $resolver): bool
- امکان تنظیم یک تابع سفارشی برای بارگذاری موجودیتهای خارجی را فراهم میکند.
libxml_set_streams_context(resource $context): void
- زمینه پیشفرض جریان را برای توابع libxml تنظیم میکند.
مثال استفاده در تجزیه XML:
libxml_use_internal_errors(true);
$xml = simplexml_load_string(“<root><invalid></root>”);
if ($xml === false) {
echo “بارگذاری XML ناموفق بود:\n”;
foreach (libxml_get_errors() as $error) {
echo $error->message;
}
libxml_clear_errors();
}
دیدگاهتان را بنویسید