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 [ルーマニア語]  

مولد خريطة الموقع XML
XML Sitemap Generator
انسخ الكود وقم بإنشاء البرنامج
XMLサイトマップのサンプル

《 XML إنشاء خريطة الموقع كود PHP 》
الامتداد عند الحفظ هو ".php".

<!DOCTYPE html>
<html lang="ar" dir="rtl">
<head>
<meta charset="UTF-8">
<title>برنامج PHP لإنشاء خريطة الموقع XML</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</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 من الملف الذي تم تنزيله.</li>
</ul>
</div>
<hr>
<?php
//************************************************
// برنامج PHP لتتبع عداد التنزيل وعارض تاريخ التنزيل
// [معرفة الجميع كتاب صغير مفيد للجميع]
// [みんなの知識 ちょっと便利帳]
// https://www.benricho.org/Tips/download_history/
// تاريخ النشر: 4 فبراير 2024
//************************************************ // فحص الخطأ/العيب // غير مطلوب لوظيفة إنشاء خريطة الموقع. إذا لم يتم استخدامه، قم بتغيير "1" إلى "0". أو حذف الكل // المستند الأصلي للبرمجة.الاكتساب التلقائي $sitemapDirectory = $_SERVER['DOCUMENT_ROOT']; // اسم ملف .xml (اسم الملف النهائي) // يمكنك تغيير اسم ملف .xml. ومع ذلك، تستخدم العديد من محركات البحث "sitemap.xml" كاصطلاح تسمية قياسي، ومن المستحسن استخدام "sitemap.xml". $finalSitemapFilename = 'sitemap.xml'; // مكان حفظ ملف خريطة الموقع (الدليل النهائي - الجذر) $finalSitemapPath = $sitemapDirectory . '/' . $finalSitemapFilename; // الدليل المستهدف لإنشاء خريطة الموقع $rootDirectory = $_SERVER['DOCUMENT_ROOT']; // اسم ملف .xml (اسم ملف مؤقت) $tempSitemapFilename = 'temporarysitemap.xml'; // موقع تخزين ملف خريطة الموقع (دليل مؤقت) $tempSitemapPath = $sitemapDirectory . '/' . $tempSitemapFilename; // أنشئ دليلاً مؤقتًا إذا لم يكن موجودًا $tempDirectory = dirname($tempSitemapPath); if (!file_exists($tempDirectory)) { mkdir($tempDirectory, 0777, true); } // احذف خريطة الموقع القديمة وأعد تسميتها إلى خريطة الموقع الجديدة (باستخدام أوامر shell) $oldSitemapFilename = 'old-' . $finalSitemapFilename; $oldSitemapPath = $sitemapDirectory . '/' . $oldSitemapFilename; // احذف خريطة الموقع القديمة إذا كانت موجودة if (file_exists($oldSitemapPath)) { unlink($oldSitemapPath); } // إعادة التسمية إلى خريطة الموقع الجديدة if (file_exists($tempSitemapPath)) { rename($tempSitemapPath, $oldSitemapPath); } // تحقق مما إذا تم النقر على زر التنزيل if (isset($_POST['downloadLocal'])) { // انسخ خريطة الموقع إلى الدليل المؤقت copy($finalSitemapPath, $tempSitemapPath); // تعيين الرأس للتنزيل header('Content-Type: application/octet-stream'); header('Content-Disposition: attachment; filename="' . $finalSitemapFilename . '"'); header('Content-Length: ' . filesize($tempSitemapPath)); // ملف إلاخراج readfile($tempSitemapPath); // احذف خريطة الموقع المحفوظة في الدليل المؤقت بعد التنزيل unlink($tempSitemapPath); exit; } ///// إعدادات الاستبعاد ///// // الدلائل لاستبعادها. حدد فقط اسم الدليل المراد استبعاده. ['dir-1'، 'dir2'] وما إلى ذلك. // اتركه فارغًا إذا لم تكن هناك حاجة إليه. []; $excludeDirectories = []; // الملفات المراد استبعادها. حدد اسم الملف فقط. ['aaa.html'، 'bbb.php'] وما إلى ذلك. // اتركه فارغًا إذا لم تكن هناك حاجة إليه. []; $excludeFiles = []; // المجلدات/الملفات المطلوب استبعادها ['dir-1/dir1/file1.html', 'dir2/file2.php'] وما إلى ذلك. // لا تقم بتضمين "/" في بداية المسار المستبعد // اتركه فارغًا إذا لم تكن هناك حاجة إليه. []; $excludePaths = []; // استبعاد الملفات ذات العلامات الوصفية مثل ['NOINDEX'، 'NOFOLLOW'، 'REFRESH'] // اتركه فارغًا إذا لم تكن هناك حاجة إليه. []; // نوصي بتحديد ['NOINDEX'] $excludeMetaTags = ['NOINDEX']; ///// شروط إنشاء خريطة الموقع ///// // احصل على عنوان الصفحة (1: احصل عليه، 2: لا تحصل عليه) // * غير مستحسن في Google Search Console // *[مهم] عند التسجيل في Google Search Console، اضبطه على "2: لا تكتسب" // *إذا قمت بتعيين ``1: الحصول على''، فستعرض Google Search Console الرسالة ``لم يتم التعرف على علامة العنوان.'' سيظهر تنبيه يطلب منك إصلاحه. $getTitle = 2; // حدد السلسلة المراد إزالتها من عنوان الصفحة // * يمكن حذف الأحرف المحددة من العنوان. ['لا'، 'ديسو'] وما إلى ذلك. // اتركه فارغًا إذا لم تكن هناك حاجة إليه. []; $removeTitleStrings = []; // احصل على تاريخ آخر تحديث للملف (1: احصل عليه، 2: لا تحصل عليه) // * موصى به بواسطة Google Search Console $getLastMod = 1; // تردد تحديث الصفحة // * تم التجاهل/الإهمال بواسطة Google. يقول "لا تضيف قيم" // استخدم تردد تحديث الصفحة (1: استخدم، 2: لا تستخدم) $useChangeFreq = 2; // حدد عنصر تردد التحديث // إذا تم التعيين على "1"، فحدد عنصر تكرار تحديث الصفحة.['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never'] // العنصر دائمًا: يتم تحديثه في كل مرة يتم الوصول إليه،hourly: يتم تحديثه كل ساعة،daily: يتم التحديث يوميا،weekly: يتم تحديثه كل أسبوع،monthly: تحديث شهري،yearly: يتم تحديثه كل عام،never:لا تحدث $changefreqValues = ['حدد وأدخل القيمة التي تنطبق على تكرار تحديث الموقع']; // أولوية الصفحة // * تم التجاهل/الإهمال بواسطة Google. يقول "لا تضيف قيم" // الحصول على الأولوية (1: الحصول على، 2: عدم الحصول على) $getPriority = 2; // نص إنشاء خريطة الموقع $successMessage = "<p>- تم إنشاء ملف Sitemap XML.<br>・ Sitemap XML file has been generated.</p><p>- تم الحفظ في جذر الخادم البعيد باسم "{$finalSitemapFilename}".<br>- لأسباب أمنية، يرجى حذف ملف البرنامج من الخادم البعيد.</p><p>・<a href='/{$finalSitemapFilename}' target='_blank'>افتح "ملف XML" في المتصفح[علامة تبويب منفصلة]</a></p>"; // رأس XML لخريطة الموقع (للملف النهائي) $xmlFinal = <<<XML <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> XML; // معالجة الملفات في الدليل بشكل متكرر (للملف النهائي) 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) - يوصى عمومًا باستخدام UTC (التوقيت العالمي المنسق) لعنصر في خريطة الموقع XML $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); } // تحقق مما إذا كان يجب استبعاد العلامات الوصفية (للملف النهائي) function shouldExcludeContent($content, $excludeMetaTags) { foreach ($excludeMetaTags as $tag) { if (stripos($content, '<meta name="robots" content="' . $tag) !== false) { return true; } } return false; } ///// احصل على تاريخ ووقت التعديل الأخير للملف - يوصى عادةً باستخدام UTC (التوقيت العالمي المنسق) لعنصر <lastmod> في ملف Sitemap XML. // قم بتعيين تاريخ آخر تعديل بتنسيق UTC (التوقيت العالمي المنسق). يشير "+00:00" إلى UTC (التوقيت العالمي المنسق) 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); } // ابدأ في إنشاء خريطة الموقع (للملف النهائي) generateSitemap($rootDirectory, $excludeDirectories, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, $xmlFinal); // تذييل خريطة الموقع (للملف النهائي) $xmlFinal .= "\n</urlset>"; // حفظ خريطة الموقع في الملف (الملف النهائي) file_put_contents($finalSitemapPath, $xmlFinal); // عرض رسالة النجاح (يظهر أنه تم إنشاء الملف النهائي) echo $successMessage; ?> <hr> <p style="margin-top: 20px"> <!-- قم بتعيين اسم الملف لبرنامج PHP هذا في العلامة <a>. الامتداد هو ".php" --> <a href="اسم الملف لهذا البرنامج.php" style="margin-left: 20px; text-decoration: none;"><i class="fa-solid fa-check" style="color: #005eff;"></i> إعادة إنشاء "ملف XML"&nbsp;&nbsp;<i class="fa-solid fa-rotate fa-spin fa-2x" style="color:crimson"></i>[إعادة تحميل الصفحة]</a> </p> <p> <!-- افتح "ملف XML" الذي تم إنشاؤه في المتصفح --> <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" في المتصفح&nbsp;&nbsp;<i class="fa-solid fa-chalkboard-user fa-beat-fade fa-2x" style="color:green"></i>[علامة تبويب منفصلة]</a> <div style="margin-left: 30px;font-size: 12px;color: gray">*إذا كان حجم الملف كبيرًا، فقد لا تتمكن من فتحه باستخدام متصفحك. إذا لم تتمكن من فتحه في متصفحك، يرجى تنزيل الملف ".xml" من خادم الويب والتحقق منه.</div> </p> <hr> <!-- تأكيد إضافة/تحديث خريطة موقع "Google". --> <p> <!-- قم بتعيين عنوان URL الخاص بك في العلامة <a> --> <a href="https://search.google.com/search-console/sitemaps?resource_id=عنوان URL الخاص بك" target="_blank" style="margin-left: 20px; text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>「<strong>Google</strong>」تأكيد إضافة/تحديث خريطة الموقع&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 لصفحة "خريطة الموقع" الخاصة بـ Google Search Console التي قمت بتسجيلها في العلامة. --> <a href="https://search.google.com/search-console?resource_id=عنوان URL الخاص بك" target="_blank" style="margin-left: 20px; text-decoration: none;"><i class="fa-solid fa-check" style="color: #005eff;"></i>「<strong>Google Search Console</strong>」&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> <!-- 「Bing」تأكيد إعادة إرسال/تحديث خريطة الموقع --> <p> <!-- قم بتعيين عنوان URL لصفحة Bing "أدوات مشرفي المواقع" التي قمت بتسجيلها واسم ملف XML الذي قمت بتعيينه في العلامة <a>. يتطابق اسم الملف مع اسم الملف المعين في "$sitemapFilename" --> <a href="https://www.bing.com/webmasters/sitemaps?siteUrl=عنوان URL الخاص بك/&sitemap=عنوان URL الخاص بك/sitemap.xml" target="_blank" style="margin-left: 20px; text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>「<strong>Bing</strong>」تأكيد إعادة إرسال/تحديث خريطة الموقع&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 "أدوات مشرفي المواقع" التي قمت بتسجيلها في العلامة <a>. --> <a href="https://www.bing.com/webmasters/home?siteUrl=عنوان URL الخاص بك" target="_blank" style="margin-left: 20px; text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>「<strong>Bing webmaster Tools</strong>」&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" أو تم ربطك بـ "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 الخاص بمولد ملفات Sitemap XML.
نأمل أنه باستخدام هذا الرمز، ستتمكن من تمكين الزحف والفهرسة الدقيقة من محركات البحث، وأن يعمل موقعك بسلاسة.
هناك برامج مدفوعة تحتوي على ميزات متقدمة مثل التحديثات التلقائية، لكننا حاولنا توفير الحد الأدنى من الوظائف.
سنكون ممتنين لو تمكنت من إرسال انطباعاتك إلينا بعد استخدام خدمتنا. يرجى ملاحظة أننا غير قادرين على الإجابة على أسئلتك.

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

Last updated : 2024/04/23