سورس برنامه نویسی ، آموزش ، قالب وردپرس ، اسکریپت ، گرافیک ، آموزش کاربردی، دانلود رایگان ، قالب

تبليغات شما در داده باران
تبلیغات در داده باران

آموزش PHP (پی اچ پی) – قسمت چهل و ششم

آموزش PHP (پی اچ پی) – قسمت چهل و ششمReviewed by داده باران on Apr 5Rating:

داده باران | سورس برنامه نویسی ، آموزش

(جهت دانلود و اطلاعات بیشتر به ادامه مطلب مراجعه نمائید)


آموزش PHP-معرفی Expat

XML چیست؟

XML برای شرح و بیان اطلاعات طراحی شده است، در واقع ساختار اطلاعات را شرح می دهد.

در XML هیچ تگ از پیش تعریف شده ای وجود ندارد، و باید خودمان تگ ها را تعریف کنیم.

تجزیه کننده Expat چیست؟

برای خواندن، ویرایش کردن، ایجاد و خلاصه دستگاری یک فایل XML، به یک تجزیه کننده XML نیاز داریم.

به صورت کلی دو نوع تجزیه کننده XML وجود دارد:

– تجزیه کننده درختی: این تجزیه کننده فایل XML را به یک ساختار درختی منتقل می کند و تمام فایل را تحلیل کرده و دسترسی به عناصر درخت را فراهم می کند.(همان طور که قبلاً گفته شد تجزیه کننده DOM از نوع درختی است)

– تجزیه کننده رویدادی: یک فایل XML را به صورت یک سری از رویدادها می بیند و زمانی که یک رویداد خاص اتفاق می افتد، یک تابع را برای بررسی آن صدا می زند.

تجزیه کننده Expat از نوع رویدادی است.

نکته: تجزیه کننده رویدادی، به جای اینکه روی ساختار تمرکز کند روی محتوای یک فایل XML تمرکز می کند، به همین خاطر دسترسی به اطلاعات در این نوع تجزیه کننده سریع تر است.

به فایل XML زیر توجه کنید:

<from>Mohammad</from>

 

یک تجزیه کننده رویدادی فایل XML بالا را به صورت سه رویداد زیر گزارش می دهد:

– شروع عنصر: from
– شروع بخص اطلاعات با مقدار: “Mohammad”
– بستن عنصر: form

حتما بخوانید  آموزش PHP (پی اچ پی) – قسمت بیست و یکم

مثال XML بالا با یک فرمت درست نوشته شده است، اما به خاطر اینکه DTD ندارد، معتبر نیست.

نکته: DTD یا Document Type Definition مشخص کننده قوانین به کار رفته در یک سند است، به این قوانین الگو می گویند، الگوها ابزارهای مهمی برای نگهداری پیوستگی اسناد محسوب می گردند. با مقایسه سند معینی با الگوی آن اعتبار آن سند تعیین می شود. اگر یک سند با تمام قوانین موجود در الگوی آن مطابقت داشته باشد به آن یک سند معتبر می گویند. معتبر بودن یک سند نشانه مطلوب بودن داده های آن است.

تجزیه کننده Expat یک تجزیه کننده بدون اعتبار است، و برای آن فرقی نمی کند که سند شنا از DTD استفاده کرده یا نه!

سند XML شما باید در یک فرمت درست نوشته شده باشد والا تجزیه کننده Expat خطایی نمایش خواهد داد.

نصب تجزیه کننده Expat

توابع تجزیه کننده Expat قسمتی از هسته PHP هستند و نیازی به نصب وجود ندارد.

فایل XML زیر در مثال های آینده استفاده خواهد شد:

<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don’t forget me this weekend!</body>
</note>

 

اعلان یک تجزیه کننده XML

در PHP می توانیم یک تجزیه کننده XML را اعلان کنیم، برای رویدادهای مختلف، تعدادی رسیدگی کننده (Handler) تعریف می شود و سپس فایل XML را تحزیه می کنیم.

مثال:

<?php
//Initialize the XML parser
$parser=xml_parser_create();

//Function to use at the start of an element
function start($parser,$element_name,$element_attrs)
{
switch($element_name)
{
case “NOTE”: echo “– Note –<br />”; break;
case “TO”: echo “To: “; break;
case “FROM”: echo “From: “; break;
case “HEADING”: echo “Heading: “; break;
case “BODY”: echo “Message: “;
}
}

//Function to use at the end of an element
function stop($parser,$element_name)
{
echo “<br />”;
}

//Function to use when finding character data
function char($parser,$data)
{
echo $data;
}

//Specify element handler
xml_set_element_handler($parser,”start”,”stop”);

//Specify data handler
xml_set_character_data_handler($parser,”char”);

//Open XML file
$fp=fopen(“test.xml”,”r”);

//Read data
while ($data=fread($fp,4096))
{
xml_parse($parser,$data,feof($fp)) or die (sprintf(“XML Error: %s at line %d”,
xml_error_string(xml_get_error_code($parser)),
xml_get_current_line_number($parser)));
}

//Free the XML parser
xml_parser_free($parser);
?>

 

حتما بخوانید  دانلود اسکریپت سیستم تیکت و پشتیبانی FireHelp نسخه ۱٫۰٫۱

خروجی کد بالا:

— Note —
To: Tove
From: Jani
Heading: Reminder
Message: Don’t forget me this weekend!

 

توضیح مثال بالا:

– تابع ()xml_parser_create یک تجزیه کننده XML را اعلان می کند.
– تابع start به عنوان رسیدگی کننده به رویدادهای مختلف ایجاد شده است.
– تابع ()xml_set_element_handler مشخص می کند، زمانی که تجزیه کننده با تگ باز و بسته مواجه شد، کدام تابع اجرا شود.
– تابع ()xml_set_character_data_handler مشخص می کند، زمانی که تجزیه کننده با اطلاعات مواجه شد، کدام تابع اجرا شود.
– تابع ()xml_parse فایل “test.xml” را تجزیه می کند.
– در صورتی که خطایی رخ دهد، تابع ()xml_error_string خطای گزارش شده را به شرحی مناسب تبدیل می کند.
– در آخر تابع ()xml_parser_free حافظه اختاص داده شده به تجزه کننده را آزاد می کند.

لينك كوتاه اين مطلب : http://www.dadebaran.ir/?p=2708

رمز فايل : DADEBARAN.IR




تبلیغات در داده باران
ارسال دیدگاه

قبل از نوشتن دیدگاه به نکات زیر توجه کنید:
    » نظراتی که با تایپ فارسی نباشند تایید نخواهند شد
    » نظرات تبلیغاتی اسپم محسوب میشوند و IP شخص مسدود خواهد شد.

پاسخ دهید

نکته: نظر شما در انتظار بررسی است و پس از تایید مدیریت در سایت نمایش داده میشود..