sitemap erstellen

  • Hat einer von euch schon ml eine sitemap selber gemacht ..So das PHP den Server durchläuft und dann die Sitemap erstellt ?

    Ich habe zwar nach fertigen sachen gesucht ,aber bei jeden der Scripte schmiert der Server ab ,ok falsch ausgedrückt , der rödelt da 30 Sekunden rum

    und dann steht da das es die Seite nicht mehr gibt. Wahrscheinlich dieses Timeout oder sowas . Also wollte ich es selber machen . Und wahr ja klar

    funktioniert natürlich nicht. Irgendwas ist an meiner Schleifen anordnung falsch weil die Ausgabe nur Müll macht. Hatte zwischen durch schon mal

    was,was ganz gut aussah ,aber das passte nicht ganz weil da nur ca 30% aller Datein aufgeliestet wahren.

    Ergebniss sieht so aus

    http://sebastian1012.bplaced.net/sitemap.xml


    Irgendwie überhaupt nicht wie eine xml sonst aussieht und er hat nur ein Ordner gescannt der rest fehlt.

    Und das mit den Bildern nicht anzeigen funktioniert erst recht nicht deswegen ist es auskommentiert

  • Mein problem ist , alle Scripte die ich im Netzt finde fangen an was zumachen und nach 30 Sekunden ist ende weil der Server sagt ende im gelände. Wenn ich den Server selber mit einer Schleife durchlaufen lasse zeigt er mir alle Datein in 3 - 4 Sekunden an.


    Ich br

    auche doch dann eigentlich nur die jpg ,js und alles andere was uninteresant ist rausfiltern und in den üblichen <url> <loc> und <changefreq> packen oder nicht ?

    Das soll er ja nicht immer automatisch machen oder so das bekomme ich sowieso nicht hin. Aber ich könnte ja zb dieses Script einmal im Monat laufen lassen und dadurch die sitemap aktualiesieren.


    Die ganzen Datein anzeigen lassen habe ich ja soweit ,nur wenn ich es in den Tags packe steht im Endergebniss nur der Hauptordner in der sitemap. Irgendwas mache ich falsch.


    Außerdem wollte ich für bestimmte Ordner sowas auch für eine <nav> nutzen ,aber wenn das eine schon nicht klappt,klappt das auch bestimmt nicht

  • Wenn ein Script dafür mehr wie 2s braucht, ist entweder das Projekt riesig oder das Script macht was falsch bzw. passt nicht zu der eigenen Struktur.

    Ich glaube auch kaum, dass Du ein Script findest, das Du 1:1 kopieren kannst.


    Nehmen wir mal an, Du kannst Deine Internetseite über folgende Links erreichen:

    https://www.example.com/startseite.html

    https://www.example.com/kontakt.html

    https://www.example.com/impressum.html


    Dann wäre sofern Du kein Rewrite verwendest Deine drei Dateien im Webroot. In dem Fall müsstest Du nur die .html Dateien im Webroot sammeln und für diese dann die XML-Nodes für die Sitemap basteln. Das ganze dann am Ende zusammengefügt mit XML-Header und Root-Node und das wars.


    Solltest Du Rewrites verwenden musst Du halt über die darin befindlichen Logik Deine aktiven URIs zusammensuchen und nach dem selben Prinzip verfahren.


    Ist eigentlich kein Hexenwerk

  • Das es eigentlich kein problem ist habe ich auch gedacht.

    Anstatt den ganzen Server zu Scannen habe ich erstmal einen kleineren Ordner genommen.

    Wie man sehen kann gibt der echo alle Links an ,auch die in den Unterordnern.


    Im Textarea sind die Unterordner aufeinmal nicht mehr da und in der xml datei auch nicht mehr. Wo ist da mein Fehler ?


    Am global liegt es wohl nicht, wenn ich das file erstellen mi in der function nehme wird es trotzdem ohne Unterordner erstellt. Wie kann da sein weil die echos geben alle Links aus ????||

  • 1.Davon mal abgesehen, Deine Seiten sind über verschiedene Ordner verteilt???

    2.Aus welchem Tutorial hast Du das denn nu wieder?

    1 . Ja noch. Aber es geht ja nicht nur um die Sitemap sondern auch um eine <nav> wo nach und nach Seiten rein sollen und die dann so ausgelesen werden um nicht andauern die Navigations Datei ändern zu müssen.


    2. Eigentlich nirgenswo ich habe versucht das selber zu machen aber wohl nicht ganz verstanden. Obwohl ich dachte schon weil die echos geben alle Links in allen Ordnern aus, deswegen dachte ich ich wäre auf den richtigen weg.

    Das ist mein Ergebniss http://sebastian1012.bplaced.net/hauptseite/sitemap.php

    Wie man sieht die Links stimmen ,aber im textarea sind die Unterornerlinks nicht mehr da.


    Mal kucken ob dein Link mir weiterhilft.

    EDIT: Das in den arrays einlesen ist ja schon mal nee schöne Sache die auch ganz gut klappt.

    Aber da einige Ordner wieder Unterordner haben ist das ja etwas verschachtelt und das wieder in einer (zb Tabelle) einzulesen ist ja wahrscheinlich auch mit mehreren Schleifen verbunden oder gibst da auch was leicht verständliches ?.



    Naja etwas weiter bin ich schon gekommen.

    Mitlerweile habe ich alle Links kommplett in einer Tabelle bekommen und das sieht gut aus. Wenn ich jetzt das noch mit der sitemap hinbekomme bin ich etwas stolz. Nur dann muss ich rausfinden wie ich js Datein und jpg und soweiter nicht anzeigen lassen kann. Normale Strings auslassen kriege ich wohl hin ,aber ist das mit Datei Endungen nicht anders ?,oder wird das genau so ausgelesen ? Bzw wie vergleicht man diese ?


    Die xml von alles ist 3mb gross ,die muß ja jetzt noch ohne js und bilder gemacht werden.

    Habe mal nee xml mit einen kleinen Ordner gemacht .Kann mal einer kucken ob das so richtig ist von Endergebniss? Mich stört das <span> da ,oder darf das sein ? http://sebastian1012.bplaced.net/sitemap.xml

  • Ok ,habe es endlich geschafft. Jetzt Scannt er alle Datei (ca 7000) und läst dann nur noch Endungen mit php und html zu.Das sind dann nur noch ca 2000 Datein. Die Sitemap ist zwar noch 400 Kb groß, aber wenn ich jetzt noch Ordner ausschließen tue wird sie noch kleiner. Muß jetzt noch rausfinden wie man Ordner aussperren kann, aber da ich es mit den Datei Endungen auch hinbekommen habe sollte das auch klappen.

    Würde ja mal gerne das ganze Script psten damit ihr mal kucken könnt was ich wieder alles falsch gemacht habe. Aber ich ja eine fertige Lösung....

  • Natürlich habe ich nicht jeden Buchstaben selber geschrieben.Das geht auch gar nicht weil zb

    define ( );

    glob_h2('*')


    würde ich define bestimmt falsch schreiben und bei globh2 könte ich kein Unterstrich machen weil die Taste schrott ist .Auch die xml Vorlage ist auch irgendwo weg ,weiß doch kein normaler Mensch was und wie das da drinne steht (außer NERDS). Trotzdem ist der rest irgendwie zusammen geschrieben worden.

    Bin doch nicht so blöd und versuche was selber zu schreiben wenn es doch funktionierende Sachen im Netzt gibt.


    Jetzt Funktioniert es aber diesmal ist es das außlesen der Server Datei von Arne Drews Script.Dazu mein restliches gefummel ud es klappt.Wahrscheinlich ist es wieder vollkommen falsch gemacht aber das werden wir wohl nie erfahren.

  • Aber da einige Ordner wieder Unterordner haben ist das ja etwas verschachtelt und das wieder in einer (zb Tabelle) einzulesen ist ja wahrscheinlich auch mit mehreren Schleifen verbunden oder gibst da auch was leicht verständliches ?

    Die Iteratoren schreiben den kompletten Pfad jeder Datei mit, da kannst Du in einem Rutsch auf alles zugreifen.

    PHP
    $itrDirectory = new RecursiveDirectoryIterator( __DIR__ );
    $itrIterator = new RecursiveIteratorIterator( $itrDirectory, RecursiveIteratorIterator::SELF_FIRST );
    
    var_dump( iterator_to_array($itrIterator) );

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!