ساخت نقشه سایت با PHP و MySQL

  • آپدیت شده در تاریخ

ساخت نقشه سایت با PHP و MySQL

در آموزش های قبلی نحوه ساخت xml توسط php با کتابخانه آماده را به شما نشان دادیم . در این مقاله آموزشی نحوه ساخت نقشه سایت با php و mysql را خواهیم دید.

نقشه سایت (Sitemap) یک سند xml میباشد که لینک های مطالب شما را با آخرین تاریخ ویرایش و اهمیت لینک و …  فهرست میکند. این فایل در شاخه اصلی وبسایت (ROOT) با نام sitemap.xml ذخیره میشود و هدف از آن آگاه سازی سریع موتورهای جستجو برای فهرست کردن این لینکها در نتایج جستجویشان است.

نقشه سایت چیست؟

نقشه سایت یا sitemap راهی برای معرفی صفحات سایت شما به موتورهای جستجو است. نقشه سایت که xml Sitemap نام دارد معمولا با نام Sitemap به کار برده میشود، که تمام صفحاتی را که میخواهید قابل دسترس باشد را لیست میکند. ساخت نقشه سایت و ثبت آن در موتورهای جستجو به شما این اطمینان را میدهد که تمام صفحات سایت شما در موتورهای جستجو لیست شود. همچنین شما میتوانید از این طریق صفحاتی را که فکر میکنید پیدا کردن آن برای موتورهای جستجو مشکل خواهد بود را نیز معرفی کنید.

یکی از مواردی که ابزار قدرتمند گوگل وبمستر (GOOGLE WebMaster) به آن بسیار اهمیت میدهد وجود نقشه سایت است . پس همین الان اقدام ساخت نقشه سایت و ثبت آن در گوگل کنید.

نقشه سایت زمانی با اهمیت تر میشود که:

  • سایت شما از مطالب داینامیک استفاده کند.
  • سایت شما دارای صفحاتی میباشد که به راحتی توسط روبات موتورهای جستجو قابل دسترسی نیست. مانند صفحاتی که محتویات آن با تکنولوژی Ajax بارگذاری میشود.
  • سایت شما جدید است و به خوبی در وب لینک دهی نشده است.
  • سایت شما دارای محتویات حجیم چند صفحه ای است و به خوبی به یک دیگر لینک دهی نشده است

گوگل فهرست کردن تمام صفحات شما را تضمین نمیکند و اظهار میکند که نقشه سایت فقط یک راهنما برای فهرست کردن درست صفحه های وب است.
گوگل از پروتکل استاندارد نقشه سایت که توسط sitemaps.org طراحی شده است استفاده میکند و در حالت کلی نقشه سایت ساخته شده برای تمام موتورهای جستجوی استاندارد قابل فهم است.

فرمت فایل XML :

برای آشنایی با المانهای کد بالا میتوانید به لینک تعریف المانها در ویکی پدیا مراجعه کنید.

ایجاد فایل نقشه سایت توسط PHP:

برای ساختن نقشه سایت نیاز به ایجاد اسکلت اولیه آن دایم. برای این کار یک فایل با نام sitemap.php ایجاد کرده و کد زیر را در آن ذخیره کنید:

در کد php بالا ما به دیتابیس mysql با PDO متصل می شویم (اتصال به دیتابیس با PDO در PHP)

ایجاد کدهای xml:

کد زیر را در فایل sitemap.xml بعد از کدهای اتصال به پایگاه داده ذخیره کنید:

با کد بالا یک هدر http برای فایل xml ایجاد می کنیم و همچنین بلاک های مورد نیاز قالب XML را در صفجه چاپ می کنیم.

اضافه کردن url ها در xml:

در کد زیر یک جدول پایگاه داده با نام mytable با فیلدهای url و date برای مطالب در نظر گرفته ایم. کد زیر را بعد از کد بالا در فایل sitemap.xml ذخیره کنید:

به همین راحتی توانستیم یک نقشه سایت (sitemap) به صورت XML ایجاد کنیم .

کد کامل ساخت نقشه سایت با PHP و MySQL :

اگر دقت کرده باشید فایل ما به صورت sitemap.php است و ما میخواهیم به فایل sitemap.xml برسیم. برای این کار کد زیر را در فایل htaccess. در شاخه اصلی وبسایت ذخیره کنید:

بعد از اضافه کردن کد بالا در فایل htaccess. آدرس نقشه سایت شما هنگام فراخوانی، از www.example.com/sitemap.php به www.example.com/sitemap.xml تبدیل میشود. یعنی شما آدرس نقشه سایت را با فرمت xml در موتورهای جستجو ثبت خواهید کرد.

امیدوار از آموزش ساخت نقشه سایت با PHP و MySQL نهایت استفاده را برده باشید

هرگونه مشکلی در پیاده سازی کدها داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۱۴)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. ناشناس ۱۵ فروردین ۱۴۰۲

    سلام وقت بخیر
    من هنگامی که از کدها استفاده می کنم ، در خروجی مقادیری که در دیتابیس فارسی ذخیره شدند به صورت زیر نمایش داده می شوند:
    دوره-تستی۱
    چگونه مشکل رفع میشه؟

    پاسخ
    1. حسن شفیعی ۱۶ فروردین ۱۴۰۲

      سلام
      $mysqli->set_charset(“utf8”)
      و ستون مربوطه رو در دیتابیس utf8_persian_ci بزارید

      پاسخ
  2. mohammad ۴ مرداد ۱۴۰۱

    سلام من دقیقا همه کار هایی که گفتین انجام دادم اما باز برام صفحه سفید میاد میزنم مثلا:
    https://yourdomain.ir/sitemap.php

    اسم جدول داخل دایتابس من : posts
    نام دو سطری که میخوام ازشون اطلاعات بخواند : post_id و time هست

    اطلاعات دیتابس تغییر دادم درست نیستن

    exec(“SET CHARACTER SET utf8”);
    return $con;
    }
    catch(PDOException $error)
    {
    echo “Error in Connect”;
    }

    // default header(don’t delete)
    header(“Content-Type: text/xml;charset=iso-8859-1”);
    echo ‘
    ‘;

    // selecting data from “mytable”
    $query=”SELECT * FROM posts”;
    $result=$con->query($query);

    while( $rows = $result->fetch(PDO::FETCH_ASSOC) ){
    // [url] = article url
    $url = $rows[‘post_id’];
    // [time] = article date
    $date = date(“Y-m-d”, $rows[‘time’]);

    // NO CHANGES BELOW
    echo

    ‘ . $url .’
    ‘. $date .’
    daily
    ۰٫۹

    ‘;
    }
    echo ”;
    ?>

    پاسخ
    1. حسن شفیعی ۴ مرداد ۱۴۰۱

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

      پاسخ
      1. mohammad ۴ مرداد ۱۴۰۱

        سلام مجدد داخل دیتابیس اطلاعات دارم نام دیتابس و رکورد هامم درسته.
        چه خطایی میتونه باشه. ممنون میشم زاهنمایی کنید
        شما کد منو دیدین درسته؟ در ساختارش اشتباهی نکردم؟

        پاسخ
      2. حسن شفیعی ۶ مرداد ۱۴۰۱

        سلام مشکلی در کد دیده نمیشه. احتمالا خطای خود محیط اجرا هست ورژن php رو بالا پایین کنید و اتصال دیتابیس رو بررسی کنید

        پاسخ
  3. سارا شایسته ۲ مهر ۱۳۹۸

    سلام وقتبخیر من این کد رو استفاده میکنم ولی هیچ چیزی ثت نمیشه فقط صفحه سفید نشون داده میشه
    کد:
    بود که خطا میداد حذف کردم و صفحه سفید میشه و هیچ چیزی نمیاره
    مشکل از چی هست؟

    پاسخ
    1. حسن شفیعی ۲ مهر ۱۳۹۸

      سلام. ممنون.
      کد رو باید بصورت کامل و در یک فایل آپلود و ارسال کنید تا بشه راهنمایی کرد.
      همچنین آموزش های php رو شروع کنید دوباره مرور کنید.
      موفق باشید.

      پاسخ
      1. سارا شایسته ۳ مهر ۱۳۹۸

        سلام فایل رو من ایمل کرده بودم دیدم ارسال نشده اشتباه زده بودم ایمیلتون رو الان روی هاست آپلود کردم رمزش ۱۲۳۴۵۶ هست لطفا فایلهای feedee.php و go2.php و funection.php رو ببینید چکارهایی باید انجام بدم من میخوام یه صفحه درست کنم بعد از مثلا هزارتا لینک ثبت شده اسم لینک کوتاه رو حذف کنم و یه اسم رندوم جدیدد جایگزینش کنم بخاطرش هم یه تابع رندوم نوشتم براش فقط اینکه چکار کنم تا این صفحه کار کنه رو موندم مننون میشم نگاه کنید بهم مشکلاتمو بگید راستی با استفاده از تابع هم اطلاعات لینک رو دراوردم بنظرم سرعتش از curl بیشتر هست و به لوکال اندازه curl فشار نمیاره ولی میخوام حالت آپدیت لینک رو هم بذارم تا هروقت از لینک بازدید شد بصورت خودکار عنوان تایتل لینک تو دیتابیس هم آپدیت بشه

        پاسخ
      2. حسن شفیعی ۴ مهر ۱۳۹۸

        سلام. لینکی که ارسال کردید موجود نبود. لطفا دیگر سوالات مربوط به این مورد رو از طریق نظرات ارسال نکنید و در ایمیل پیگیر باشید.

        پاسخ
      3. سارا شایسته ۵ مهر ۱۳۹۸

        سلام وقت بخیر من با رز آپ آپلود کردم نگاه کنم بینم چیشده چون لپ تاپش پیشم نیست شاید ادمین وبلاگ پاگ گرده چشم ایمل میزنم مشکل اینکه اینجا کد کار نمیکردم پیدا کردم وقتی کد رو کپی میکنید و اجرا میکنید خطای زیر رو میده

        Parse error: syntax error, unexpected ‘}’ in D:\0000000111\htdocs\cod\cod\xmlx.php on line 36
        برای رفع خطا به خط ۲۱ خودتون هم نگاه کنید
        while( $rows = $result->fetch(PDO::FETCH_ASSOC) )
        خط ۲۱ کدتون در آخر خط یه { اضافه کردنی خطا رفع میشه مثل کد زیر
        while( $rows = $result->fetch(PDO::FETCH_ASSOC) ){
        در انتهای خط ۲۱ یک { اضافه کردم خطا رفع شد
        عکس های سورس قبل از { اضافه کردن
        http://8upload.ir/uploads/f566195.jpg
        و بعد از { اضافه کردن
        http://8upload.ir/uploads/f286732637.jpg
        ممنون

        پاسخ
      4. حسن شفیعی ۵ مهر ۱۳۹۸

        سلام. ممنون.
        انگار مشکلتون حل شده پس اوکی هست.
        یادگیری رفع این چنین خطاهای سینتکس از موارد پایه و ابتدایی کار با php هست
        ide خودتون رو هم اگر سیستمتون رم و cpu خوبی داره میتونید به phpstorm تغییر بدید تا دیباگ کردن آسان تر بشه
        موفق باشید.

        پاسخ
      5. ش.ش ۲۴ اسفند ۱۳۹۸

        سلام خسته نباشید
        کد رو اجرا کردنی خطای
        Parse error: syntax error, unexpected ‘}’, expecting end of file in C:\xampp\htdocs\dashboard\cod\0t\link.php on line 36

        دلیل خطاش هم این هست
        در خط ۲۱
        باید کد زیر قرار میگرفت
        while( $rows = $result->fetch(PDO::FETCH_ASSOC) ){
        ولی احتمالا هنگام ارسال یا اشتباهی از کدهای حذف شده
        و این کد درج شده
        while( $rows = $result->fetch(PDO::FETCH_ASSOC) )

        که در کد
        بجای (
        از
        {
        ثبت شده و یدونه هم
        } کلا کم هست و ثبت نشده
        لطفا صحیح کنید کاربرا اشتباه نکنن
        چون دیدم یکی از کاربرا هم قبلا گفته بودن مشکل داره و خود کاربرهم تو توضیحش باز اشتباه نوشته

        پاسخ
      6. حسن شفیعی ۲۴ اسفند ۱۳۹۸

        سلام ممنون از توجه شما
        اصلاح شد.

        پاسخ
دوره های آموزشی