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 Sitemap
Γεννήτρια XML Sitemap
Αντιγράψτε τον κώδικα και δημιουργήστε το πρόγραμμα.
Δείγμα XML Sitemap

Εισαγωγή
Ένας χάρτης ιστότοπου είναι μια σελίδα ή ένα αρχείο που παραθέτει τη δομή και το περιεχόμενο του ιστότοπού σας, βοηθώντας τους χρήστες και τις μηχανές αναζήτησης να κατανοήσουν τις πληροφορίες στον ιστότοπό σας και να βοηθήσουν στην πλοήγηση.

Παρόλο που αυτή η σελίδα έχει τίτλο "Πρόγραμμα Δημιουργίας XML Sitemap", η τρέχουσα σελίδα δεν είναι εργαλείο για τη δημιουργία χαρτών ιστότοπου.

Σε αυτήν τη σελίδα, θα βρείτε τον κώδικα για τη δημιουργία και την ανάκτηση ενός χάρτη ιστότοπου σε μορφή XML. Ανεβάστε τον  κώδικα παρακάτω   στο διακομιστή του ιστότοπού σας και εκτελέστε το πρόγραμμα όταν χρειάζεστε έναν XML χάρτη ιστότοπου για τον ιστότοπό σας. Έχετε την ελευθερία να τροποποιήσετε τον κώδικα. Αισθανθείτε ελεύθεροι να τον χρησιμοποιήσετε.
Αποποίηση Ευθύνης
Ανάλογα με τη δομή του ιστότοπό σας, υπάρχει η πιθανότητα ότι αυτό το πρόγραμμα ενδέχεται να μην δημιουργήσει επιτυχώς έναν χάρτη ιστότοπου.
Το πρόγραμμα υποθέτει ότι ο ιστότοπος δημιουργείται χρησιμοποιώντας το UTF-8. Ωστόσο, ακόμη και αν όλο το περιεχόμενο είναι σε UTF-8, ενδέχεται να μην λειτουργήσει εάν οι ετικέτες HTML δεν ταιριάζουν με το πρότυπο του προγράμματος.
Κίνδυνοι
Αυτό το πρόγραμμα είναι σχεδιασμένο να εκτελείται σε ένα περιβάλλον διαδικτύου. Συνεπώς, συνδέονται με αυτόν τους ακόλουθους κινδύνους.
  1. Κίνδυνος παρέμβασης τρίτων: Κακόβουλοι τρίτοι μπορεί να εκτελέσουν το πρόγραμμα PHP, πιθανόν αλλάζοντας τη ρίζα.
  2. Επίδοση διακομιστή: Με πολλά αρχεία/καταλόγους, ενδέχεται να καταναλώσει χρόνο και μνήμη, επηρεάζοντας το φόρτο του διακομιστή.
  3. Επίδραση στο Googlebot: Κατά την αναφορά του Googlebot στον χάρτη ιστότοπου, εάν το πρόγραμμα εξερευνηθεί κατά τη συγγραφή, ενδέχεται να μην φτάσουν σωστές πληροφορίες στο bot.
Μέτρα που λαμβάνονται
Έχουμε λάβει τα ακόλουθα μέτρα για να μειώσουμε τον κίνδυνο:
  1. Αποθήκευση των δημιουργημένων αρχείων: Για ενισχυμένη ασφάλεια του δημιουργημένου αρχείου χάρτη ιστότοπου, το πρόγραμμα ακολουθεί αυτά τα βήματα:
    1. Προσωρινή αποθήκευση: Τα αρχεία χάρτη ιστότοπου αποθηκεύονται αρχικά προσωρινά σε θέση έξω από τον κατάλογο ρίζας, εμποδίζοντας την άμεση εγγραφή ή παρέμβαση από κακόβουλους τρίτους στο διακομιστή ιστού.
    2. Μετονομασία αρχείου: Το δημιουργημένο αρχείο χάρτη ιστότοπου μετονομάζεται μετά την προσωρινή αποθήκευση, μειώνοντας τον κίνδυνο παρέμβασης με την αλλαγή του αρχικού ονόματος αρχείου.
Μέτρα που πρέπει να ληφθούν
Για να μειώσετε τον κίν δυνο, παρακαλούμε σημειώστε τα παρακάτω:
  1. Διαγραφή αρχείου προγράμματος: Μετά τη δημιουργία του χάρτη ιστότοπου, αφαιρέστε άμεσα το ανεβασμένο αρχείο προγράμματος από τον διακομιστή.
  2. Εκτέλεση σε ασφαλές περιβάλλον: Να είστε προσεκτικοί όταν τοποθετείτε αρχεία σε απομακρυσμένους διακομιστές και να σκεφτείτε την εκτέλεσή τους τοπικά αν νομίζετε ότι υπάρχει κίνδυνος.
  3. Παρακολούθηση φόρτου: Αν ο φόρτος του διακομιστή αυξηθεί, σταματήστε αμέσως τη χρήση για να αποφευχθούν προβλήματα απόδοσης.
  4. Μέτρα για το Googlebot: Μετά τη δημιουργία του χάρτη ιστότοπου, επιβεβαιώστε την επιτυχή εξερεύνηση στο Google Search Console. Λάβετε υπόψη την εκκίνηση της εξερεύνησης χειροκίνητα εάν είναι απαραίτητο.
  • Εκτός αν έχετε ένα πρόσθετο δημιουργίας χάρτη ιστότοπου όπως το WordPress, θα πρέπει να δημιουργήσετε τον χάρτη ιστότοπου μόνοι σας. Σε αυτήν την περίπτωση, παρακαλούμε χρησιμοποιήστε τον κώδικα που παρουσιάζεται εδώ.
  • Λεπτομερείς πληροφορίες σχετικά με τη δομή του χάρτη ιστότοπου και την ανάγκη του μπορούν να βρεθούν σε πολλές ιστοσελίδες, επομένως παραλείπονται εδώ, παρέχοντας μόνο τον κώδικα PHP.
  • Κάθε στοιχείο στον κώδικα έχει σχόλια. Επιλέξτε τη μέθοδο που σας ταιριάζει.
  • Το δημιουργημένο αρχείο XML (.xml) φαίνεται σαν το παρακάτω, παρέχοντας ένα δείγμα με τα ελάχιστα απαιτούμενα στοιχεία για την εγγραφή στο Google. Επιπλέον, μπορείτε να ανακτήσετε "Τίτλο Σελίδας," "Συχνότητα Αλλαγών," και "Προτεραιότητα."
    XML sitemap sample
    ・Η τελευταία ημερομηνία τροποποίησης (<lastmod>) λαμβάνεται σε Παγκόσμια Συντονισμένη Ώρα (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" στην πρώτη γραμμή ενδέχεται να μην εμφανίζεται.
    7. Εάν το χρησιμοποιήσετε για πρώτη φορά, βεβαιωθείτε για τη σωστή δημιουργία και ελέγξτε για περιττά στοιχεία.
    8. Αν αντιμετωπίσετε ένα "Σφάλμα κωδικοποίησης" κατά την πρόσβαση στη σελίδα, ενδέχεται να οφείλεται σε συγκεκριμένους χαρακτήρες.
      Για παράδειγμα, χαρακτήρες όπως [&] θα πρέπει να επαναγραφούν ως κωδικοί απόδρασης, όπως φαίνεται στον παρακάτω πίνακα.
      * Οι κωδικοί απόδρασης μπορούν να αντιγραφούν κάνοντας κλικ.
    9. Χαρακτήρας  Κωδικός Απόδρασης 
      Ampersand
      &➡️
      &amp;
      Single Quote
      ➡️
      &apos;
      Double Quote
      ➡️
      &quot;
      Greater Than
      >➡️
      &gt;
      Less Than
      <➡️
      &lt;
    10. Όταν επαληθεύσαμε αυτό σε ένα περιβάλλον δοκιμής, όταν δεν καθορίστηκαν αποκλεισμοί, βρέθηκε ένας κατάλογος όπως το "sys", ο οποίος δεν χρησιμοποιείται ως κατάλογος σελίδων στον ιστότοπο αυτό. Αν επιβεβαιώνετε, παρακαλούμε καθορίστε το όνομα του καταλόγου στο στοιχείο 'Αποκλεισμός καταλόγων', για παράδειγμα, "$excludeDirectories = ['sys']".
      Εναλλακτικά, δοκιμάστε να καθορίσετε κάτι όπως "$excludeMetaTags = ['NOINDEX']" στην ενότητα "Αποκλεισμός Meta Tags". Ο παρακάτω κώδικας PHP χρησιμοποιεί "NOINDEX" ως την προεπιλεγμένη ρύθμιση.
《 Κώδικας PHP Δημιουργίας XML Χάρτη 》
 Λήψη ZIP Αρχείου με Μόνο Τμήμα PHP   
Μπορείτε να εκτελέσετε το πρόγραμμα ακόμη και με το μόνο τμήμα PHP.
Αποθηκεύστε το αρχείο με την επέκταση ".php".

<!DOCTYPE html>
<html lang="el">
<head>
<meta charset="UTF-8">
<title>Πρόγραμμα Δημιουργίας XML Sitemap PHP</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
//************************************************
// Πρόγραμμα Δημιουργίας XML Sitemap PHP
// Πρόγραμμα που παρέχεται από: Ένα Βιβλίο με Χρήσιμες Γνώσεις για Όλους
//        Minna no Chishiki Chotto Benricho
//        みんなの知識 ちょっと便利帳
// https://www.benricho.org/Tips/sitemapgenerator/
// Κυκλοφόρησε: 29 Ιανουαρίου 2024
//************************************************s

// Ριζικός κατάλογος του διακομιστή web. Ανακτήθηκε αυτόματα.
$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 (χρησιμοποιώντας εντολή κελύφους)
$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('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 = [];

// Ετικέτες μεταδεδομένων που περιέχουν ['NOINDEX', 'NOFOLLOW', 'REFRESH'], κλπ. για να εξαιρεθούν
// Ορίστε έναν κενό πίνακα αν δεν είναι απαραίτητο. $excludeDirectories = [];
// Συνιστάται η καθορισμός ['NOINDEX']
$excludeMetaTags = ['NOINDEX'];

///// Συνθήκες Δημιουργίας Sitemap /////
// Λήψη τίτλου σελίδας (1: Ναι, 2: Όχι)
// * Δεν συνιστάται από το Google Search Console
// * Εάν εγγραφείτε με το Google Search Console, ορίστε το "2: Όχι"
// * Εάν οριστεί σε "1: Λήψη," το Google Search Console μπορεί να εμφανίσει ειδοποίηση που αναφέρει: "Τα τίτλα των ετικετών δεν αναγνωρίζονται. Παρακαλώ κάντε τις διορθώσεις."
$getTitle = 2;
// Χαρακτήρες για αφαίρεση από τον τίτλο
// * Μπορεί να αφαιρέσει συγκεκριμένους χαρακτήρες από τον τίτλο. ['of', 'is'] κλπ.
// Ορίστε έναν κενό πίνακα αν δεν είναι απαραίτητο. $excludeDirectories = [];
$removeTitleStrings = [];

// Λήψη τελευταίας ημερομηνίας τροποποίησης του αρχείου (1: Ναι, 2: Όχι)
// * Συνιστάται από το Google Search Console
$getLastMod = 1;

// Συχνότητα ενημέρωσης σελίδας
// * Παραβλέπεται από το Google. Συνιστάται να μην προστίθενται τιμές.
// Χρήση συχνότητας ενημέρωσης σελίδας (1: Ναι, 2: Όχι)
$useChangeFreq = 2;
// Επιλογή στοιχείων για συχνότητα ενημέρωσης όταν επιλέγεται "1"
// ['πάντα', 'κάθε ώρα', 'ημερησίως', 'εβδομαδιαία', 'μηνιαία', 'ετήσια', 'ποτέ']
// Επιλέξτε τιμές που ισχύουν για τη συχνότητα ενημέρωσης του ιστότοπού σας
$changefreqValues = ['στοιχείο κατάλληλο για τον ιστότοπό σας'];

// Προτεραιότητα σελίδας
// * Παραβλέπεται από το 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 (Συντονισμένη Παγκόσμια Ώρα) (που υποδηλώνεται από "+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>";
}

// Εμφάνιση προτεραιότητας
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 (Συντονισμένης Παγκόσμιας Ώρας) στο XML στοιχείο του χάρτη ιστότοπου
// Ορίστε την τελευταία ημερομηνία τροποποίησης στη μορφή UTC (Συντονισμένη Παγκόσμια Ώρα) (που υποδηλώνεται από "+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);
}

// Έναρξη δημιουργίας χάρτη ιστότοπου (για το τελικό αρχείο)
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>&nbsp;&nbsp;&nbsp;[Ανανέωση σελίδας]</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>&nbsp;&nbsp;&nbsp;[Ξεχωριστή καρτέλα]</a>
<div style="margin-left: 30px;font-size: 12px;color: gray">* Εάν το μέγεθος του αρχείου είναι μεγάλο, ενδέχεται να μην μπορείτε να το ανοίξετε στον περιηγητή σας. Εάν δεν μπορείτε να το ανοίξετε στον περιηγητή σας, παρακαλούμε κατεβάστε το αρχείο ".xml" από τον διακομιστή ιστού και ελέγξτε το.</div>
</p>
<hr>
<!-- Επιβεβαιώστε την προσθήκη/ενημέρωση του "Google" sitemap -->
<p>
<!-- <a>Ορίστε τη δική σας URL στην ετικέτα -->
<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>&nbsp;[<strong>Google</strong>]&nbsp;Επιβεβαιώστε την προσθήκη/ενημέρωση του χάρτη ιστότοπου&nbsp;&nbsp;<i class="fa-solid fa-arrow-up-from-bracket fa-bounce fa-2x" style="color: #db0016;"></i></a>
</p>
<!-- [Εργαλείο αναζήτησης Google] -->
<p>
<!-- <a>Ορίστε τη διεύθυνση URL της σελίδας "Sitemap" του 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>&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" που έχετε εγγράψει και το όνομα αρχείου 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>&nbsp;[<strong>Bing</strong>]&nbsp;Επιβεβαιώστε την προσθήκη/ενημέρωση του χάρτη ιστότοπου&nbsp;&nbsp;<i class="fa-solid fa-arrow-up-from-bracket fa-bounce fa-2x" style="color: #db0016;"></i></a>
</p>
<!-- [Εργαλεία ιστού Bing] -->
<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>&nbsp;[<strong>Εργαλεία ιστού Bing</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" ή έχετε ολοκληρώσει τη συνεργασία με το "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 χάρτη.
Χρησιμοποιώντας αυτόν τον κώδικα, ελπίζουμε να επιτύχετε αποτελεσματική εξερεύνηση και ευρετήριση από τις μηχανές αναζήτησης, εξασφαλίζοντας την ομαλή λειτουργία του ιστότοπου.
Αν και υπάρχουν προγράμματα με πληρωμένες λειτουργίες όπως αυτόματες ενημερώσεις, εδώ ο εστίασε στην παροχή βασικής λειτουργικότητας.

Μπορεί να υπάρχουν σφάλματα στη διατύπωση καθώς είναι μετάφραση από την ιαπωνική έκδοση. Ζητάμε συγνώμη για την ταλαιπωρία, αλλά εάν υπάρχει σφάλμα στη διατύπωση στον κώδικα, παρακαλού με διορθώστε τον ή προσαρμόστε τον μόνοι σας.

Η γνώμη σας για τη χρήση αυτού του κώδικα είναι εκτίμηση. Παρακαλούμε σημειώστε ότι δεν μπορώ να ανταποκριθώ σε ερωτήσεις.

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

Last updated : 2024/04/23