بسم الله الرحمن الرحیم

انجمن های تخصصی کدباکس

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

امروز چهارشنبه 19 سپتامبر 18, 1:31 pm



مبحث جدیدپاسخ

 [ 9 پست ] 
نويسنده پيغام
پستارسال شده در: يکشنبه 25 دسامبر 16, 9:18 am 

پست ها : 2
سپاسگذاری کرده: 0 بار
سپاس دریافتی: 0 بار
سلام.
دوستان کسی میتونه نحوه ی نمایش محتوای یک فایل اچ تی ام ال توسط php رو آموزش بده ؟


پستارسال شده در: يکشنبه 25 دسامبر 16, 9:34 am 
نماد کاربر

پست ها : 371
محل سکونت: فارس
سپاسگذاری کرده: 41 بار
سپاس دریافتی: 576 بار
golchehre نوشته است:
سلام.
دوستان کسی میتونه نحوه ی نمایش محتوای یک فایل اچ تی ام ال توسط php رو آموزش بده ؟



درود بر شما
برای نمایش محتویات فایل های xml شما به تجزیه کننده ی فایل xml نیاز دارید
بسته به نوع فایل xml میتوانید از یکی از تجزیه کننده های زیر استفاده کنید :
SimpleXML برای فایل های xml ساده کاربرد دارد.
تجزیه کننده DOM که فایل xml را به صورت درختی میبیند.
نکته : هر دو تجزیه کننده بالا کل فایل را مورد بررسی قرار میدهند و اطلاعات لازم را در اختیار ما میگذارند.
و تجزیه کننده ی رویدادی زیر هم هست که نیاز به پردازش کمتری دارد و مناسب برای فایل های بزرگ هست
تجزیه کننده XML Expat


پستارسال شده در: يکشنبه 25 دسامبر 16, 9:37 am 

پست ها : 2
سپاسگذاری کرده: 0 بار
سپاس دریافتی: 0 بار
برای شروع و یادگیری میخوام کارم راه بیفته.
لطفا آسون ترینش ، یعنی اون تجزیه کننده xml که به کمترین کد برای تجزیه نیاز داره رو آموزش بدید.
ممنون میشم


پستارسال شده در: يکشنبه 25 دسامبر 16, 9:55 am 
نماد کاربر

پست ها : 371
محل سکونت: فارس
سپاسگذاری کرده: 41 بار
سپاس دریافتی: 576 بار
golchehre نوشته است:
برای شروع و یادگیری میخوام کارم راه بیفته.
لطفا آسون ترینش ، یعنی اون تجزیه کننده xml که به کمترین کد برای تجزیه نیاز داره رو آموزش بدید.
ممنون میشم


اینطور که معلومه گزینه ی SimpleXML Parser به درد شما میخوره ، چون در مقایسه با dom و expat کد کمتری لازم داره.
به طور مثال محتوای فایل xml ما این است :
کد:
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>golchehre</to>
<from>hoseyn</from>
<heading>answer</heading>
<body>how to use simple xml parser</body>
</note>

نام فایل xml بالا learn.xml گذاشته ایم.
برای تجزیه و نمایش اطلاعات توست تجزیه کننده ساده ی xml از کد زیر استفاده میکنیم
کد:
<?php
$xml = simplexml_load_file("learn.xml");

echo $xml->getName() . "<br />";

foreach($xml->children() as $child)
  {
  echo $child->getName() . ": " . $child . "<br />";
  }
?>

در کد بالا ابتدا با تابع simplexml_load_file فایل را لود کردیم
سپس نام اولین عنصر را خواندیم
سپس روی هر جوجه عنصر یک حلقه زدیم و برای خواندن اطلاعات هر جوجه عنصر از تابع ()children استفاده کردیم.
خروجی کد بالا می شود :
کد:
note
to: golchehre
from: hoseyn
heading: answer
body: how to use simple xml parser


پستارسال شده در: يکشنبه 25 دسامبر 16, 10:09 am 

پست ها : 2
سپاسگذاری کرده: 0 بار
سپاس دریافتی: 0 بار
سلام.
آقای hoseyn ممنون از توضیحاتتون. ولی خب اگر فایل بزرگ باشه و عناصر زیادی داشته باشه استفاده از روش simple xml کند هست و باید از یک تجزیه کننده رویدادی استفاده بشه.
میشه تجزیه کننده ی رویدادی expat رو هم توضیح بدید ؟


پستارسال شده در: يکشنبه 25 دسامبر 16, 12:03 pm 
نماد کاربر

پست ها : 371
محل سکونت: فارس
سپاسگذاری کرده: 41 بار
سپاس دریافتی: 576 بار
arbaein نوشته است:
سلام.
آقای hoseyn ممنون از توضیحاتتون. ولی خب اگر فایل بزرگ باشه و عناصر زیادی داشته باشه استفاده از روش simple xml کند هست و باید از یک تجزیه کننده رویدادی استفاده بشه.
میشه تجزیه کننده ی رویدادی expat رو هم توضیح بدید ؟


برای استفاده از تجزیه کننده expat از کد زیر استفاده میکنیم. توضیحات به صورت یادداشت در کد گنجانده شده است.
کد:
<?php
//اعلان تجزیه کننده
$parser=xml_parser_create();

//تابع استفاده شونده در ابتدای المنت ها
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 stop($parser,$element_name)
  {
  echo "<br />";
  }

//تابع استفاده شونده در برخورد با داده کاراکترهای تحلیل نشده
function char($parser,$data)
  {
  echo $data;
  }

//مشخص کننده اجرای تابع
xml_set_element_handler($parser,"start","stop");

//مشخص کننده اجرای تابع تجزیه کننده داده های کاراکتری تحلیل نشده
xml_set_character_data_handler($parser,"char");

//باز کردن فایل test.xml
$fp=fopen("test.xml","r");

//خواندن اطلاعات
while ($data=fread($fp,4096))
  {
// تجزیه کردن فایل xml
  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)));
  }

//آزاد کردن حافظه اختصاص داده شده
xml_parser_free($parser);
?>


پستارسال شده در: يکشنبه 25 دسامبر 16, 12:08 pm 

پست ها : 2
سپاسگذاری کرده: 0 بار
سپاس دریافتی: 0 بار
با تشکر از توضیحاتتون ، خیلی خوب بود.
باید در تکمیل توضیحات شما بگم که در فایل های xml بزرگ باید از تجزیه کننده های رویدادی event parser استفاده کنیم که تجزیه کننده expat parser یک تجزیه کننده رویدادی هست ، برخلاف تجزیه کننده های دیگه که ساختار درختی دارند و تمام فایل رو تحلیل میکنند این parser به صورت رویدادی میبینه و زمانی که رویداد خاص اتفاق میفته تابع بررسی کننده اش رو صدا میزنه. این از لحاظ سرعت و پردازشی خیلی به نفع هست.


پستارسال شده در: چهارشنبه 28 دسامبر 16, 10:35 am 

پست ها : 2
سپاسگذاری کرده: 0 بار
سپاس دریافتی: 1 بار
خب همه ی تجزیه کننده ها رو توضیح دادین ، اگه میشه تجزیه کننده DOM xml parser رو هم توضیح بدید و بگید چه مزیت ها و معایبی داره.


پستارسال شده در: چهارشنبه 28 دسامبر 16, 10:50 am 
نماد کاربر

پست ها : 371
محل سکونت: فارس
سپاسگذاری کرده: 41 بار
سپاس دریافتی: 576 بار
kanani نوشته است:
خب همه ی تجزیه کننده ها رو توضیح دادین ، اگه میشه تجزیه کننده DOM xml parser رو هم توضیح بدید و بگید چه مزیت ها و معایبی داره.


سلام دوست عزیز.
تجزیه کننده DOM هم از نوع درختی است که ابتدا تمام فایل را بررسی کرده و سپس دسترسی به عناصر را میسر می کند. تنها مزیتی که داره فکر کنم اینه که احتیاج به نصب نداره و جزو هسته ی php است.

برای استفاده از DOM parser از کد زیر استفاده میکنیم :
کد:
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");
print $xmlDoc->saveXML();

در کد بالا یک شیء از DOMDocument ایجاد کردیم و فایل Note.xml را در آن لود کردیم.
سپس با استفاده از تابع savexml() فایل لود شده را داخل یک رشته قرار میدهیم. حالا میتوانیم آن را چاپ کنیم.

اگر میخواهید عناصر را به صورت جزء به جزء نمایش بدهید بدین صورت عمل میکنید.
کد:
<?php
$xmlDoc = new DOMDocument();
$xmlDoc->load("note.xml");

$x = $xmlDoc->documentElement;
foreach ($x->childNodes AS $item)
  {
  print $item->nodeName . " = " . $item->nodeValue . "<br />";
  }
?>


نمايش پست ها از پيشين:  مرتب سازي بر اساس  

مبحث جدیدپاسخ

 [ 9 پست ] 


مباحث مرتبط

 مباحث   نويسنده   پاسخ ها   بازديدها   آخرين پست 
موضوع ناخوانده دیگری در این انجمن موجود نیست. پنهان کردن محتویات uploads وردپرس

Hoseyn

0

2523

چهارشنبه 08 جولاي 15, 12:37 pm

Hoseyn نمایش آخرین ارسال

موضوع ناخوانده دیگری در این انجمن موجود نیست. فایل install.php در وردپرس

Hoseyn

3

6066

سه شنبه 28 جولاي 15, 2:43 am

M.Abooali نمایش آخرین ارسال

موضوع ناخوانده دیگری در این انجمن موجود نیست. نحوه ساخت فایل اسکریپت

handsome

2

3490

جمعه 01 سپتامبر 17, 8:25 am

arenanoc نمایش آخرین ارسال

موضوع ناخوانده دیگری در این انجمن موجود نیست. جلوگیری از آپلود فایل تکراری در php

babachangiz

6

1915

پنج شنبه 08 دسامبر 16, 7:23 pm

Hoseyn نمایش آخرین ارسال

موضوع ناخوانده دیگری در این انجمن موجود نیست. همه چیز درباره ی فایل robots.txt در وردپرس

Hoseyn

0

2781

سه شنبه 15 سپتامبر 15, 7:57 am

Hoseyn نمایش آخرین ارسال

 


چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 4 مهمان


شما نمي توانيد مبحث جديدي در اين انجمن ايجاد کنيد
شما نمي توانيد به مباحث در اين انجمن پاسخ دهيد
شما نمي توانيد پست هاي خود را در اين انجمن ويرايش کنيد
شما نمي توانيد پست هاي خود را در اين انجمن حذف کنيد
شما نمي توانيد فايل هاي پيوست در اين انجمن ارسال کنيد



بخش ها