Sitemap Generator Language Table of Contents
 Japanese [日本語]  
 English [英語]  
 Korean [韓国語]  
 Simplified Chinese [简体中文]  
 Traditional Chinese [繁體中文]  
 Español [スペイン語]  
 Français [フランス語]  
 Português [ポルトガル語]  
 Arabic العربية [アラビア語]  
 Deutsch [ドイツ語]  
 Italiano [イタリア語]  
 Russian [ロシア語]  
 Turkish [トルコ語]  
 Hindi [ヒンディー語]  
 Vietnamese [ベトナム語]  
 Thai [タイ語]  
 Dutch [オランダ語]  
 Indonesian [インドネシア語]  
 Malay [マレー語]  
 Filipino [フィリピン語]  
 Swedish [スウェーデン語]  
 Norwegian [ノルウェー語]  
 Danish [デンマーク語]  
 Finnish [フィンランド語]  
 Polish [ポーランド語]  
 Czech [チェコ語]  
 Hungarian [ハンガリー語]  
 Greek [ギリシャ語]  
 Romanian [ルーマニア語]  

Xโปรแกรมสร้าง XML Sitemap
ตัวสร้าง XML Sitemap
คัดลอกรหัสและสร้างโปรแกรม.
ตัวอย่าง XML Sitemap

การแนะนำ
Sitemap คือหน้าหรือไฟล์ที่ระบุโครงสร้างและเนื้อหาของเว็บไซต์ของคุณ เป็นประโยชน์ในการช่วยให้ผู้ใช้และเครื่องมือค้นหาเข้าใจข้อมูลในเว็บไซต์ของคุณและช่วยในการนำทาง
แม้ว่าชื่อของหน้านี้จะเป็น 'Xโปรแกรมสร้าง XML Sitemap' แต่หน้าปัจจุบันนี้ไม่ได้ทำหน้าที่เป็นเครื่องมือสร้าง Sitemap

ในหน้านี้ คุณจะพบโค้ดสำหรับสร้างและดึงแผนผังไซต์ในรูปแบบ XML อัปโหลด โค้ดด้านล่าง  ไปยังเซิร์ฟเวอร์ของเว็บไซต์ของคุณ และเรียกใช้โปรแกรมเมื่อคุณต้องการแผนผังเว็บไซต์ XML สำหรับเว็บไซต์ของคุณ คุณมีอิสระที่จะแก้ไขโค้ด โปรดอย่าลังเลที่จะใช้มัน

ข้อสงวนสิทธิ์
ขึ้นอยู่กับโครงสร้างของเว็บไซต์ของคุณ มีโอกาสที่โปรแกรมนี้อาจไม่สามารถสร้าง Sitemap ได้เป็นไปได้
โปรแกรมนี้ถูกสร้างขึ้นโดยสมมติว่าเว็บไซต์ถูกสร้างขึ้นโดยใช้ UTF-8 อย่างไรก็ตาม หากเนื้อหาทั้งหมดเป็น UTF-8 โปรแกรมอาจไม่ทำงานถ้าแท็ก HTML ไม่ตรงกับรูปแบบของโปรแกรม
ความเสี่ยง
โปรแกรมนี้ได้รับการออกแบบมาให้ดำเนินการในสภาพแวดล้อมออนไลน์ ดังนั้นความเสี่ยงต่อไปนี้จึงเกี่ยวข้องด้วย
  1. ความเสี่ยงของการปลอมแปลงโดยบุคคลที่สาม: บุคคลที่สามที่เป็นอันตรายอาจรันโปรแกรม PHP ซึ่งอาจเปลี่ยนแปลงรูทได้
  2. ความเสี่ยงของการปลอมแปลงโดยบุคคลที่สาม: บุคคลที่สามที่เป็นอันตรายอาจรันโปรแกรม PHP ซึ่งอาจเปลี่ยนแปลงรูทได้
  3. ผลกระทบต่อ Googlebot: ในระหว่างที่ Googlebot อ้างอิงแผนผังไซต์ หากมีการรวบรวมข้อมูลโปรแกรมขณะเขียน ข้อมูลที่ถูกต้องอาจไม่เข้าถึงบอต
มาตรการที่ดำเนินการ
เราได้ใช้มาตรการต่อไปนี้เพื่อลดความเสี่ยง:
  1. การจัดเก็บไฟล์ที่สร้างขึ้น: การจัดเก็บไฟล์ที่สร้างขึ้น: เพื่อเพิ่มความปลอดภัยให้กับไฟล์แผนผังเว็บไซต์ที่สร้างขึ้น โปรแกรมจะทำตามขั้นตอนเหล่านี้:
    1. การจัดเก็บชั่วคราว: ไฟล์แผนผังไซต์จะถูกจัดเก็บชั่วคราวในตำแหน่งนอกไดเร็กทอรีราก เพื่อป้องกันการเขียนโดยตรงหรือการดัดแปลงโดยบุคคลที่สามที่เป็นอันตรายบนเว็บเซิร์ฟเวอร์
    2. การเปลี่ยนชื่อไฟล์: ไฟล์แผนผังไซต์ที่สร้างขึ้นจะถูกเปลี่ยนชื่อหลังจากการจัดเก็บชั่วคราว ซึ่งช่วยลดความเสี่ยงของการปลอมแปลงโดยการเปลี่ยนชื่อไฟล์ต้นฉบับ
การดำเนินมาตรการ
เพื่อลดความเสี่ยงของคุณ โปรดทราบข้อต่อไปนี้:
  1. การลบไฟล์โปรแกรม: หลังจากการสร้าง Sitemap โปรดลบไฟล์โปรแกรมที่อัปโหลดไว้ที่เซิร์ฟเวอร์โดยทันที
  2. การดำเนินการในสภาพแวดล้อมที่ปลอดภัย: ระวังเรื่องการวางไฟล์ในเซิร์ฟเวอร์ระยะไกลและพิจารณาในกรณีที่คุณรู้สึกว่ามีความเสี่ยง
  3. การตรวจสอบการโหล: หากโหลดของเซิร์ฟเวอร์เพิ่มขึ้น คุณควรหยุดใช้งานทันทีเพื่อป้องกันปัญหาเกี่ยวกับประสิทธิภาพ
  4. มาตรการสำหรับ Googlebot: หลังจากที่สร้าง Sitemap ให้ตรวจสอบความสำเร็จใน Google Search Console พิจารณาเริ่มการครอลด้วยตนเองถ้าจำเป็น
  • นอกจากนี้ถ้าคุณไม่มีปลั๊กอินสร้าง Sitemap เช่น WordPress คุณต้องสร้าง Sitemap เอง ในกรณีนั้น โปรดใช้รหัสที่นำเสนอที่นี่
  • ข้อมูลละเอียดเกี่ยวกับโครงสร้างและความจำเป็นของ Sitemap สามารถหาได้ในหลายเว็บไซต์ ดังนั้นจึงไม่ได้ระบุที่นี่ และให้เฉพาะรหัส PHP เท่านั้น
  • ทุกรายการในรหัสมีความคิดเห็น กรุณาเลือกวิธีที่เหมาะกับความชอบของคุณ
  • ไฟล์ XML ที่สร้างขึ้น (.xml) จะมีลักษณะต่อไปนี้ ให้ตัวอย่างด้วยรายการขั้นต่ำที่จำเป็นสำหรับการลงทะเบียน Google นอกจากนี้คุณยังสามารถดึง "ชื่อหน้า," "ความถี่ในการเปลี่ยนแปลง," และ "ลำดับความสำคัญ" ได้
    ตัวอย่าง XML Sitemap
    ・วันที่ปรับเปลี่ยนล่าสุด (<lastmod>) ได้รับใน Coordinated Universal Time (UTC)
    ・ตัวอย่างเช่น เวลาประเทศญี่ปุ่นเพิ่ม 9 ชั่วโมงเข้าไปในเวลาที่แสดง
  • ขั้นตอนการติดตั้ง:
    1. เตรียมไดเรกทอรี (โฟลเดอร์) ที่มีชื่อเช่น "sitemap"
    2. คัดลอก โค้ดด้านล่าง   และวางลงในโปรแกรมแก้ไขหน้าเว็บของคุณ
    3. ปฏิบัติตามความคิดเห็นในรหัสเพื่อแทนที่ทุกรายการด้วยเนื้อหาที่เหมาะสมกับเงื่อนไขของคุณ
    4. ตั้งชื่อไฟล์เช่น 'sitemapgenerator.php' และบันทึกหน้าที่แก้ไขมีนามสกุล '.php' ไม่ใช่ '.html'
    5. อัปโหลดไปยังเซิร์ฟเวอร์เว็บของคุณ หากคุณสามารถเข้าถึงหน้าและเห็นหน้าจอที่คล้ายกันกับตัวอย่างด้านล่าง การสร้างเสร็จสมบูรณ์
      * ทดสอบในสภาพแวดล้อมการพัฒนาประมาณ 20,000 หน้า ขนาดไฟล์ประมาณ 6MB (เลือกทุกรายการที่มีในการตั้งค่า) และใช้เวลาประมาณ 3 วินาที
      งเป็นที่ประสบความสำเร็จของประเภทที่รวมส่วน MTML
      【ประเภทที่รวมส่วน MTML】
      ตัวอย่างเป็นที่ประสบความสำเร็จของประเภทที่มีแค่ส่วน PHP
      【ประเภทที่มีแค่ส่วน PHP】
    6. เปิด "ไฟล์ XML" ที่บันทึกไว้ในเบราว์เซอร์ของคุณเพื่อตรวจสอบ หรือดาวน์โหลดไฟล์ ".xml" ที่บันทึกไว้เพื่อตรวจสอบ และหากสร้างขึ้นถูกต้อง ให้ลงทะเบียนไปที่ Google Search Console  Bing Webmaster Tools   และอื่น ๆ
      * หากไฟล์มีขนาดใหญ่คุณอาจไม่สามารถเปิดได้ในเบราว์เซอร์ โปรดดาวน์โหลดไฟล์ ".xml" จากเซิร์ฟเวอร์เว็บเพื่อยืนยัน
      * ขึ้นอยู่กับเบราว์เซอร์ อาจไม่แสดงถูกต้องเมื่อเปิดดู
      * หากเปิดดูในเบราว์เซอร์ "XML Declaration" บรรทัดแรกอาจจะไม่ปรากฏ
    7. หากคุณใช้ครั้งแรก โปรดตรวจสอบการสร้างที่ถูกต้องและตรวจสอบรายการที่ไม่จำเป็น
    8. หากคุณพบข้อผิดพลาด "Encoding error" เมื่อเข้าถึงหน้า อาจเกิดจากตัวอักษรที่เฉพาะเจาะจง
      ตัวอย่างของข้อผิดพลาด Encoding
      ตัวอย่างเช่น ตัวอักษรเช่นe [&] ควรถูกเขียนใหม่เป็นรหัส escape ตามที่แสดงในตารางด้านล่าง
      * รหัส escape สามารถคัดลอกได้โดยการคลิก
    9. ตัวอักษร  รหัส Escape 
      Ampersand
      &➡️
      &amp;
      Single Quote
      ➡️
      &apos;
      Double Quote
      ➡️
      &quot;
      Greater Than
      >➡️
      &gt;
      Less Than
      <➡️
      &lt;
      สาเหตุที่เกิด "Encoding Error" บ่อย:  
      An "Encoding Error" is an error message that occurs when an XML file is not correctly encoded with a specific character encoding. The following issues may be considered:
      1. Invalid characters are present
        [Cause] XML demands certain characters ([&][']["][>][<], etc.) to be escaped. An error occurs if these characters are not properly escaped.
        [Fix] Escape invalid characters or ensure they are correctly escaped.
      2. Correct encoding is not specified
        [Cause] If the XML file declaration at the beginning, such as <?xml version="1.0"?>, is present, and the encoding attribute is not correctly specified afterward, an error occurs.
        [Fix] Specify the correct encoding, for example, <?xml version="1.0" encoding="UTF-8"?>.
      3. Declaration section is incorrect
        [Cause] An error occurs if the declaration section is incorrect or if there is an error between "<?xml" and "?>".
        [Fix] Correct the declaration section.
      4. File encoding doesn't match the declaration
        [Cause] An error occurs if the actual encoding of the file does not match the encoding specified in the XML declaration.
        [Fix] Adjust the file encoding to match the declaration.
      5. File is corrupted
        [Cause] Errors occur if the file is not saved correctly or is corrupted.
        [Fix] Resave the file and ensure it can be loaded successfully.
    10. เมื่อเราตรวจสอบในสภาพแวดล้อมทดสอบนี้ เมื่อไม่มีการระบุเงื่อนไขการยกเว้น พบว่าไดเรกทอรีเช่น "sys" ที่ไม่ได้ใช้เป็นไดเรกทอรีของหน้าเว็บ (โฟลเดอร์) ในเว็บไซต์นี้ พบในไฟล์ XML ถ้าท่านตรวจสอบแล้ว โปรดระบุชื่อไดเรกทอรีใน 'Exclude directories' ตัวอย่างเช่น "$excludeDirectories = ['sys']"
      หรือลองระบุบางอย่าง เช่น "$excludeMetaTags = ['NOINDEX']" ในส่วน "Exclude Meta Tags" รหัส PHP ด้านล่างใช้ "NOINDEX" เป็นการตั้งค่าเริ่มต้น
* "font-family" ในโปรแกรมควรถูกปรับให้ตรงกับเว็บไซต์ของคุณหากจำเป็น
《 รหัส PHP สร้าง XML Sitemap 》
 ดาวน์โหลดไฟล์ ZIP เฉพาะส่วน PHP เท่านั้น   
คุณสามารถเรียกใช้โปรแกรมได้แม้แต่กับส่วน PHP เท่านั้น
บันทึกไฟล์ด้วยนามสกุล ".php".

<!DOCTYPE html>
<html lang="th">
<head>
<meta charset="UTF-8">
<title>โปรแกรม PHP สร้าง XML Sitemap</title>
<meta name="robots" content="NOINDEX,NOFOLLOW">
<!-- ไอคอนฟรี - สามารถลบได้หากไม่ได้ใช้ -->
<link href="https://use.fontawesome.com/releases/v6.2.0/css/all.css" rel="stylesheet">
</head>
<body>
<h2>&nbsp;&nbsp;<i class="fa-regular fa-pen-to-square fa-2x" style="color: crimson"></i>&nbsp;สร้าง XML Sitemap</h2>
<hr>
<div style="margin:15px 5px 10px 20px;padding: 0 15px 0 0; font-size: 14px;background-color: lavenderblush; border: gray 1px solid; border-radius: 4px;">
<div style="margin:15px 0 0 20px">
    <form method="post">
        <input type="submit" name="downloadLocal" value="ดาวน์โหลดไฟล์ XML ลงที่เครื่อง" style="background-color: white;border-radius: 5px;cursor: pointer;">
    </form>
</div>
<ul>
<li>ไฟล์ XML ที่ดาวน์โหลดมาจากที่นี้ประกอบด้วยส่วนหนึ่งของโค้ด HTML ของหน้านี้</li>
<li>หากคุณต้องการไฟล์ XML ที่บริสุทธิ์ ดาวน์โหลดจากเซิร์ฟเวอร์ระยะไกล หรือลบส่วน HTML ของไฟล์ที่ดาวน์โหลดไป ไฟล์ XML ที่อยู่ระหว่าง "&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;" ถึง "&lt;/urlset&gt;" คือไฟล์ XML</li>
</ul>
</div>
<hr>
<?php
//************************************************
// โปรแกรม PHP สร้าง XML Sitemap
// โปรแกรมให้โดย: ความรู้ของทุกคนหนังสือเล่มเล็กที่มีประโยชน์
//        Minna no Chishiki Chotto Benricho
//        みんなの知識 ちょっと便利帳
// https://www.benricho.org/Tips/sitemapgenerator/
// วางจำหน่าย: 30 มกราคม 2024
//************************************************

// ไดเรกทอรีเอกสารของเว็บเซิร์ฟเวอร์ ดึงอัตโนมัติ
$sitemapDirectory = $_SERVER['DOCUMENT_ROOT'];

// ชื่อไฟล์ .xml (ชื่อไฟล์สุดท้าย)
// ชื่อไฟล์ .xml สามารถเปลี่ยนแปลงได้ อย่างไรก็ตาม, หลายๆ โปรแกรมค้นหาใช้ "sitemap.xml" เป็นมาตรฐาน, ดังนั้นแนะนำให้ใช้ "sitemap.xml"
$finalSitemapFilename = 'sitemap.xml';

// ไดเรกทอรีสำหรับบันทึกไฟล์ sitemap (ไดเรกทอรีสุดท้าย - ราก)
$finalSitemapPath = $sitemapDirectory . '/' . $finalSitemapFilename;

// ไดเรกทอรีเพื่อสร้าง sitemap
$rootDirectory = $_SERVER['DOCUMENT_ROOT'];

// ชื่อไฟล์ .xml (ชื่อไฟล์ชั่วคราว)
$tempSitemapFilename = 'temporarysitemap.xml';

// ไดเรกทอรีเพื่อบันทึกไฟล์ sitemap (ไดเรกทอรีชั่วคราว)
$tempSitemapPath = $sitemapDirectory . '/' . $tempSitemapFilename;

// สร้างไดเรกทอรีชั่วคราวหากยังไม่มี
$tempDirectory = dirname($tempSitemapPath);
if (!file_exists($tempDirectory)) {
    mkdir($tempDirectory, 0777, true);
}

// ลบ sitemap เก่าและเปลี่ยนชื่อเป็น sitemap ใหม่ (ใช้คำสั่ง shell)
$oldSitemapFilename = 'old-' . $finalSitemapFilename;
$oldSitemapPath = $sitemapDirectory . '/' . $oldSitemapFilename;

// ลบ sitemap เก่าหากมี
if (file_exists($oldSitemapPath)) {
    unlink($oldSitemapPath);
}

// เปลี่ยนชื่อเป็น sitemap ใหม่
if (file_exists($tempSitemapPath)) {
    rename($tempSitemapPath, $oldSitemapPath);
}

// ตรวจสอบว่าปุ่มดาวน์โหลดถูกคลิกหรือไม่
if (isset($_POST['downloadLocal'])) {
    // คัดลอก sitemap ไปยังไดเรกทอรีชั่วคราว
    copy($finalSitemapPath, $tempSitemapPath);

    // ตั้งค่า header สำหรับการดาวน์โหลด
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . $finalSitemapFilename . '"');
    header('Content-Length: ' . filesize($tempSitemapPath));

    // แสดงไฟล์
    readfile($tempSitemapPath);

    // หลังจากดาวน์โหลด, ลบ sitemap ที่บันทึกในไดเรกทอรีชั่วคราว
    unlink($tempSitemapPath);
    exit;
}

///// การตั้งค่าการยกเว้น /////
// ไดเรกทอรีที่ต้องการยกเว้น ระบุเฉพาะชื่อไดเรกทอรี ['dir-1', 'dir2'] เป็นต้น
// ตั้งค่าเป็นอาร์เรย์ว่างหากไม่จำเป็น $excludeDirectories = [];
$excludeDirectories = [];

// ไฟล์ที่ต้องการยกเว้น ระบุเฉพาะชื่อไฟล์ ['aaa.html', 'bbb.php'] เป็นต้น
// ตั้งค่าเป็นอาร์เรย์ว่างหากไม่จำเป็น $excludeDirectories = [];
$excludeFiles = [];

// ไดเรกทอรี/ไฟล์ที่ต้องการยกเว้น ['dir-1/dir1/file1.html', 'dir2/file2.php'] เป็นต้น
// พาธที่ต้องการยกเว้นไม่ควรรวม '/' ด้านหน้า
// ตั้งค่าเป็นอาร์เรย์ว่างหากไม่จำเป็น $excludeDirectories = [];
$excludePaths = [];

// Meta tags ที่มี ['NOINDEX', 'NOFOLLOW', 'REFRESH'], เป็นต้น ที่ต้องการยกเว้น
// ตั้งค่าเป็นอาร์เรย์ว่างหากไม่จำเป็น $excludeDirectories = [];
// แนะนำระบุ ['NOINDEX']
$excludeMetaTags = ['NOINDEX'];

///// เงื่อนไขการสร้าง Sitemap /////
// รับชื่อหน้า (1: ใช่, 2: ไม่)
// * ไม่แนะนำโดย Google Search Console
// * หากลงทะเบียนกับ Google Search Console ตั้งค่าเป็น "2: ไม่"
// * หากตั้งค่าเป็น "1: รับ," Google Search Console อาจแสดงการเตือนว่า "ไม่รู้จักตัวสั่ง Title tags กรุณาแก้ไข"
$getTitle = 2;
// ข้อความที่ต้องการลบจากชื่อหน้า
// * สามารถลบสตริงที่ระบุออกจากชื่อได้ ['of', 'is'] เป็นต้น
// ตั้งค่าเป็นอาร์เรย์ว่างหากไม่จำเป็น $excludeDirectories = [];
$removeTitleStrings = [];

// รับวันแก้ไขล่าสุดของไฟล์ (1: ใช่, 2: ไม่)
// * แนะนำโดย Google Search Console
$getLastMod = 1;

// ความถี่ในการอัปเดตหน้า
// * ถูกละเว้นโดย Google แนะนำไม่ต้องเพิ่มค่า
// ใช้ความถี่ในการอัปเดตหน้า (1: ใช่, 2: ไม่)
$useChangeFreq = 2;
// เลือกอิลิเมนต์สำหรับความถี่ในการอัปเดตเมื่อ "1" ถูกเลือก
// ['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never']
// เลือกค่าที่เกี่ยวข้องกับความถี่ในการอัปเดตของเว็บไซต์ของคุณ
$changefreqValues = ['element suitable for your site'];

// ความสำคัญของหน้า
// * ถูกละเว้นโดย Google แนะนำไม่ต้องเพิ่มค่า
// รับความสำคัญ (1: ใช่, 2: ไม่)
$getPriority = 2;

// ข้อความการสร้าง Sitemap
$successMessage = "<p>・ ไฟล์ Sitemap XML ได้ถูกสร้าง</p><p>・ ได้บันทึกไว้ที่รากของเซิร์ฟเวอร์ระยะไกลเป็น '{$finalSitemapFilename}'<br>・ เพื่อเหตุผลด้านความปลอดภัย, โปรดลบไฟล์โปรแกรมจากระยะไกล</p><p>・ <a href='/{$finalSitemapFilename}' target='_blank'>เปิด 'ไฟล์ XML' ในเบราว์เซอร์ [แท็บใหม่]</a></p>";

// ส่วนหัว Sitemap XML (สำหรับไฟล์ sitemap สุดท้าย)
$xmlFinal = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
XML;

// ประมวลผลไฟล์ในไดเรกทอรีแบบที่เรียกกันซ้ำ (สำหรับไฟล์ Sitemap สุดท้าย)
function generateSitemap($directory, $excludeDirs, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, &$xmlFinal) {
    $dir = new DirectoryIterator($directory);
    foreach ($dir as $fileInfo) {
        if ($fileInfo->isDot()) continue;

        $filename = $fileInfo->getFilename();
        $filepath = $fileInfo->getPathname();
        $fileExtension = pathinfo($filename, PATHINFO_EXTENSION);

        // ตรวจสอบว่าเป็นไดเรกทอรี/ไฟล์ที่ต้องการยกเว้นหรือไม่
        $excludePath = str_replace($_SERVER['DOCUMENT_ROOT'], '', $filepath);
        if (in_array(ltrim($excludePath, '/'), $excludePaths)) {
            continue;
        }
        if ($fileInfo->isDir()) {
            if (in_array($filename, $excludeDirs)) {
                continue;
            } else {
                generateSitemap($filepath, $excludeDirs, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, $xmlFinal);
            }
        } else {
            if (in_array($filename, $excludeFiles) || in_array($filename, $excludeDirs)) {
                continue;
            }

            if (in_array($fileExtension, ['html', 'php'])) {
                processFile($filepath, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $xmlFinal);
            }
        }
    }
}

// ประมวลผลไฟล์ (สำหรับไฟล์สุดท้าย)
function processFile($filepath, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, &$xmlFinal) {
    $content = file_get_contents($filepath);
    if (shouldExcludeContent($content, $excludeMetaTags)) {
        return;
    }

    $url = getRelativeUrl($filepath);
    // ตั้งค่าวันแก้ไขล่าสุดในรูปแบบ UTC (Coordinated Universal Time) (ระบุด้วย "+00:00")
    $lastMod = ($getLastMod == 1) ? getLastModifiedDateUTC($filepath) : '';

    $xmlFinal .= "\n <url>";
    $xmlFinal .= "\n <loc>{$url}</loc>";

    if ($getTitle == 1) {
        $title = getTitleFromContent($content);
        if (!empty($title)) {
            $title = str_replace($removeTitleStrings, '', $title);
            $xmlFinal .= "\n <title>{$title}</title>";
        }
    }

    // แสดงวันแก้ไขล่าสุด
    if (!empty($lastMod)) {
        $xmlFinal .= "\n <lastmod>{$lastMod}</lastmod>";
    }

    // แสดง changefreq
    if ($useChangeFreq == 1) {
        $changefreq = $changefreqValues[array_rand($changefreqValues)];
        $xmlFinal .= "\n <changefreq>{$changefreq}</changefreq>";
    }

    // แสดง priority
    if ($getPriority == 1) {
        $priority = getPriorityFromDepth($filepath);
        $xmlFinal .= "\n <priority>{$priority}</priority>";
    }

    $xmlFinal .= "\n </url>";
}

// คำนวณความสำคัญขึ้นอยู่กับความลึก (สำหรับไฟล์สุดท้าย)
function getPriorityFromDepth($filepath) {
    $depth = substr_count($filepath, DIRECTORY_SEPARATOR);
    return 1 - ($depth * 0.1);
}

// ตรวจสอบว่า meta tags ควรถูกยกเว้นหรือไม่ (สำหรับไฟล์สุดท้าย)
function shouldExcludeContent($content, $excludeMetaTags) {
    foreach ($excludeMetaTags as $tag) {
        if (stripos($content, '<meta name="robots" content="' . $tag) !== false) {
            return true;
        }
    }

    return false;
}

///// รับวันแก้ไขล่าสุดของไฟล์ - แนะนำให้ใช้ UTC (Coordinated Universal Time) ใน XML element ของ Sitemap
// ตั้งค่าวันแก้ไขล่าสุดในรูปแบบ UTC (Coordinated Universal Time) (ระบุด้วย "+00:00")
function getLastModifiedDateUTC($filepath) {
    $lastModTimestamp = filemtime($filepath);
    $lastModDateTime = new DateTimeImmutable('@' . $lastModTimestamp);
    return $lastModDateTime->format('c');
}

// รับชื่อจากไฟล์ HTML (สำหรับไฟล์สุดท้าย)
function getTitleFromContent($content) {
    $dom = new DOMDocument;
    libxml_use_internal_errors(true); // ปิดการแสดงข้อผิดพลาดระหว่างการแปลง HTML
    $dom->loadHTML($content);

    $titleElements = $dom->getElementsByTagName('title');
    if ($titleElements->length > 0) {
        $title = $titleElements->item(0)->textContent;
        return $title;
    }

    return '';
}

// รับ URL ที่เกี่ยวข้องกับไฟล์ (สำหรับไฟล์สุดท้าย)
function getRelativeUrl($filepath) {
    $relativeUrl = str_replace($_SERVER['DOCUMENT_ROOT'], '', $filepath);
    return $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . str_replace('\\', '/', $relativeUrl);
}

// เริ่มกระบวนการสร้าง Sitemap (สำหรับไฟล์สุดท้าย)
generateSitemap($rootDirectory, $excludeDirectories, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, $xmlFinal);

// ส่วนท้ายของ Sitemap (สำหรับไฟล์สุดท้าย)
$xmlFinal .= "\n</urlset>";

// บันทึก Sitemap เป็นไฟล์ (สำหรับไฟล์สุดท้าย)
file_put_contents($finalSitemapPath, $xmlFinal);

// แสดงข้อความสำเร็จ (ระบุว่าไฟล์ Sitemap สุดท้ายได้ถูกสร้างและบันทึกไว้)
echo $successMessage;
?>
<hr>
<p style="margin-top: 20px">
<!-- ตั้งชื่อไฟล์ของโปรแกรม PHP นี้ในแท็ก <a> โดยใช้นามสกุล ".php" -->
<a href="File name of this program.php" style="margin-left: 20px;text-decoration: none;"><i class="fa-solid fa-check" style="color: #005eff;"></i> สร้างใหม่ "XML file"&nbsp;&nbsp;<i class="fa-solid fa-rotate fa-spin fa-2x" style="color:crimson"></i>&nbsp;&nbsp;&nbsp;[รีโหลดหน้า]</a>
</p>
<p>
<!-- เปิด "XML file" ที่สร้างขึ้นในเบราว์เซอร์ -->
<a href='<?php echo '/' . $finalSitemapFilename; ?>' target='_blank' style='margin-left: 20px;text-decoration: none;'><i class="fa-solid fa-check" style="color: #005eff;"></i> เปิด "XML file" ในเบราว์เซอร์&nbsp;&nbsp;<i class="fa-solid fa-chalkboard-user fa-beat-fade fa-2x" style="color:green"></i>&nbsp;&nbsp;&nbsp;[แท็บแยก]</a>
<div style="margin-left: 30px;font-size: 12px;color: gray">* หากขนาดไฟล์ใหญ่เกินไป อาจจะไม่สามารถเปิดได้ในเบราว์เซอร์ของคุณ หากไม่สามารถเปิดได้ กรุณาดาวน์โหลดไฟล์ ".xml" จากเซิร์ฟเวอร์เว็บและตรวจสอบ</div>
</p>
<hr>
<!-- ยืนยันการเพิ่ม/อัปเดต Sitemap ของ "Google" -->
<p>
<!-- <a> ตั้งค่า URL ของคุณเองในแท็ก -->
<a href="https://search.google.com/search-console/sitemaps?resource_id=your own URL" target="_blank" style="margin-left: 20px;text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>&nbsp;[<strong>Google</strong>]&nbsp;ยืนยันการเพิ่ม/อัปเดต Sitemap&nbsp;&nbsp;<i class="fa-solid fa-arrow-up-from-bracket fa-bounce fa-2x" style="color: #db0016;"></i></a>
</p>
<!-- [Google Search Console] -->
<p>
<!-- <a> ตั้งค่า URL ของ "Sitemap" ที่คุณลงทะเบียนไว้ในแท็ก -->
<a href="https://search.google.com/search-console?resource_id=your own URL" target="_blank" style="margin-left: 20px;text-decoration: none;"><i class="fa-solid fa-check" style="color: #005eff;"></i>&nbsp;[<strong>Google Search Console</strong>]&nbsp;&nbsp;&nbsp;<i class="fa-solid fa-up-right-from-square fa-beat fa-2x" style="color: blue"></i></a>
<div style="font-size: 13px; margin: 0 40px">* ถือว่าคุณลงทะเบียนกับ "Google Search Console" แล้ว</div>
</p>
<hr>
<!-- ยืนยันการเพิ่ม/อัปเดต Sitemap ของ "Bing" -->
<p>
<!-- ตั้งค่า URL ของ "Bing Webmaster Tools" ที่คุณลงทะเบียนและชื่อไฟล์ XML ที่คุณตั้งในแท็ก <a> ชื่อไฟล์ควรตรงกับชื่อไฟล์ที่ตั้งไว้ใน "$sitemapFilename" -->
<a href="https://www.bing.com/webmasters/sitemaps?siteUrl=your own URL/&sitemap=your own URL/sitemap.xml" target="_blank" style="margin-left: 20px;text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>&nbsp;[<strong>Bing</strong>]&nbsp;ยืนยันการเพิ่ม/อัปเดต Sitemap&nbsp;&nbsp;<i class="fa-solid fa-arrow-up-from-bracket fa-bounce fa-2x" style="color: #db0016;"></i></a>
</p>
<!-- [Bing webmaster Tools] -->
<p>
<!-- ตั้งค่า URL ของ "Bing Webmaster Tools" ที่คุณลงทะเบียนไว้ในแท็ก <a> -->
<a href="https://www.bing.com/webmasters/home?siteUrl=your own URL" target="_blank" style="margin-left: 20px;text-decoration: none;">
<i class="fa-solid fa-check" style="color: #005eff;"></i>&nbsp;[<strong>Bing Webmaster Tools</strong>]&nbsp;&nbsp;&nbsp;<i class="fa-solid fa-up-right-from-square fa-beat fa-2x" style="color: blue"></i></a>
<div style="font-size: 13px; margin: 0 40px">* ถือว่าคุณลงทะเบียนกับ "Bing Webmaster Tools" หรือทำการร่วมมือเสร็จสมบูรณ์กับ "Google Search Console" แล้ว</div>
</p>
<hr>
<!-- แสดงชื่อเว็บไซต์ ฯลฯ หากคุณไม่ต้องการแสดง กรุณาลบ -->
<h3 align="center"><i class="fa-solid fa-house" style="color: crimson"></i>&nbsp;ชื่อเว็บไซต์ของคุณ ฯลฯ&nbsp;<i class="fa-solid fa-house" style="color: crimson"></i></h3>
<!-- คุณสามารถลบได้ -->
<h4 align="center"><a href="https://www.benricho.org/" target="_blank" style="text-decoration: none;"><i class="fa-solid fa-house" style="color: blue"></i>&nbsp;みんなの知識 ちょっと便利帳&nbsp;<i class="fa-solid fa-house" style="color: blue"></i></h4>
</body>
</html>
บันทึกไฟล์ด้วยนามสกุล ".php".
 ดาวน์โหลดไฟล์ ZIP เฉพาะส่วน PHP เท่านั้น   
คุณสามารถเรียกใช้โปรแกรมได้แม้แต่กับส่วน PHP เท่านั้น
นี้เป็นส่วนสุดท้ายของการแนะนำของเราถึงรหัส PHP สำหรับตัวสร้าง XML sitemap
โดยใช้รหัสนี้ ท่านสามารถบรรลุการครอลลิ่งและอินเด็กซิ่งที่มีประสิทธิภาพจากเครื่องมือค้นหา โดยทำให้การดำเนินการของไซต์เรียบร้อย.
ในขณะที่มีโปรแกรมที่มีคุณลักษณะขั้นสูงเช่นการอัปเดตอัตโนมัติที่ต้องเสียค่าใช้จ่าย ที่นี่มุ่งไปที่การให้ความสามารถที่จำเป็น
อาจมีข้อผิดพลาดในคำถามเนื่องจากนี่คือการแปลจากเวอร์ชันญี่ปุ่น เราขออภัยในความไม่สะดวก แต่หากมีข้อผิดพลาดในคำถามของรหัส กรุณาแก้ไขหรือปรับเปลี่ยนเอง
ข้อเสนอแนะของคุณในการใช้รหัสนี้เป็นสิ่งที่ดีเสมอ โปรดทราบว่าฉันไม่สามารถตอบคำถามได้

おすすめサイト・関連サイト…

Last updated : 2024/06/29