PHP xml_set_external_entity_ref_handler() Function











❮ مرجع تجزیه کننده PHP XML



مثال


یک تجزیه کننده XML ایجاد کنید، کنترل کننده داده کاراکتر را تنظیم کنید، موجودیت خارجی را تنظیم کنید
کنترل کننده مرجع، و یک سند XML را تجزیه کنید:



// ایجاد یک تجزیه کننده XML
$parser=xml_parser_create();


تابع کاراکتر($parser,$data) {
echo $data;


function ext_ent_handler($parser,$ent,$base,$sysID,$pubID)
{

echo "$ent
";

echo "$sysID
";

echo "$pubID
";




// تنظیم کنید
کنترل کننده داده کاراکتر

xml_set_character_data_handler($parser,"char");

// تنظیم
کنترل کننده مرجع موجودیت خارجی
xml_set_exte
al_entity_ref_handler($parser, "ext_ent_handler");

$fp=fopen("note_entity.xml","r");


در حالی که ($data=fread($fp,4096)) {
  // ​​داده‌های XML را تجزیه کنید

xml_parse($parser,$data,feof($fp)) یا
  die (sprintf("خطای XML: %s
در خط %d،
  xml_error_string(xml_get_error_code($parser))،

xml_get_current_line_number($parser)));


xml_parser_free($parser);
fclose($fp);

?>







تعریف و استفاده


تابع xml_set_exte
al_entity_ref_handler() تابعی را مشخص می کند که وقتی تجزیه کننده موجودیت خارجی را در سند XML پیدا می کند، فراخوانی شود.


توجه: پارامتر handler همچنین می‌تواند یک آرایه حاوی یک مرجع شی و نام روش باشد.



نحو



xml_set_exte
al_entity_ref_handler(تجزیه کننده، handler)

مقادیر پارامتر









را مشخص می کند





پارامتر توضیح
تجزیه کننده لازم است. تجزیه کننده XML مورد استفاده
handler لازم است. تابعی را برای استفاده به عنوان کنترل کننده رویداد مشخص می کند. تابع باید
پنج پارامتر را بپذیرید:

  • $Parser - متغیری حاوی تجزیه کننده XML که کنترل کننده را فرا می خواند

  • $name - متغیری حاوی نام موجودیت خارجی

  • $base - پایه ای برای حل شناسه سیستم (system_id) موجودیت خارجی. در حال حاضر، این همیشه است
    یک رشته خالی

  • $system_id - شناسه سیستم همانطور که در اعلامیه موجودیت مشخص شده است

  • $public_id - شناسه عمومی همانطور که در اعلامیه موجودیت مشخص شده است














جزئیات فنی











مقدار بازگشتی: درست است
موفقیت FALSE در صورت شکست
نسخه PHP: 4.0+



❮ مرجع تجزیه کننده PHP XML