Zum Inhalt springen
ThreadPHP & MySQL

Urllist aus Sitemap erstellen

Kategorie
PHP & MySQL
Gelesen
2450
Antworten
5
Erstellt von: gelöschter BenutzerDatum: 18.04.2010, 11:29 Uhr
Archiv-KommentarSelektiv indexiertIndexierung & Crawling

Redaktionelle Einordnung

Diese archivierte Diskussion behandelt Urllist aus Sitemap erstellen aus Sicht der Rubrik PHP & MySQL.

Für Indexierungsfragen sind heute Search Console, saubere Robots-Signale, Canonicals und XML-Sitemaps die wichtigsten Stellschrauben.

Sinnvoll nutzbar bleibt der Thread vor allem als historischer Kontext, für typische Fragestellungen und zur Einordnung älterer Empfehlungen.

Einige im historischen Thread genannte Tools, Dienste oder externe Links könnten heute nicht mehr verfügbar oder inhaltlich überholt sein. Nutzen Sie sie bitte nur mit zusätzlicher Prüfung.

Startbeitrag

Originaler Foreninhalt in modernisierter Darstellung.

Zur Kategorie
gelöschter Benutzer
Threadstart · PHP & MySQL 2450 mal gelesen · 18.04.2010, 11:29 Uhr

Hallo

Nachdem Florian gestern mal das Stichwort XML Datenbank fallen liess, habe ich mich gefragt ob ich nicht eine urllist.txt automatisch aus einer Sitemap erzeugen kann!

Abgesehen davon das das Skript noch nicht auf dem Stand ist das ich die urllist.txt dann noch abspeichere funktioniert es!


<?php
$xml = simplexml_load_file('http://prskspedia.de/sitemap.xml');
foreach ($xml->url as $data)
{
$url .= ''.$data->loc.'
';
}
$xml = simplexml_load_file('http://prskspedia.de/sitemap/wikisitemap0.php');
foreach ($xml->url as $data)
{
$url .= ''.$data->loc.'
';
}
echo $url;
?>


Wie sinnvoll eine Urllist heutzutage noch ist mag dahin gestellt sein!
Nur die Grundidee eine auch aus dynamisch generierten Sitemaps zu erzeugen finde ich nicht so schlecht.

Gruß
Jörg

Antworten

5 Beiträge
gelöschter Benutzer
am 18.04.2010, 11:42 Uhr schrieb
Antwort

joerg schrieb:


Wie sinnvoll eine Urllist heutzutage noch ist mag dahin gestellt sein!
Nur die Grundidee eine auch aus dynamisch generierten Sitemaps zu erzeugen finde ich nicht so schlecht.

Gruß
Jörg


Hallo Jörg, Du kannst programmieren- drum klappt das. Mit dem Freeware-Programm GSiteCrawler erzeuge ich, bei Bedarf erneut von Hand
-sitemap.xml für GOO
-urlist.txt für YAH
-sitemap.txt für GOO durch Umbenennen der urlist.txt
und alle funktionieren.
Welchen weiteren Vorteil bietet Deine urlist.txt? Oder könnte es sein, daß bei Dir dynamisch alle paar Tage eine neue sitemap.xml automatisch erzeugt wird, woraus dann Dein Programm automatisch auch eine urlist.txt erzeugt? Und hast Du auch ein programm, das automatisch zu GOO/Yah hochlädt???
Dann ist das gewiss eine feine Sache, Gruss Fritz

gelöschter Benutzer
am 18.04.2010, 11:57 Uhr schrieb
Antwort

Hallo Fritz

Erst mal bin ich ein absoluter Laie gegen Florian was das Programmieren anbetrifft. Und du kannst das auch lernen! Seit Anfang Februar beschäftige ich mich erst richtig mit PHP mehr aufzustellen!

Den Vorteil den diese Idee für mich hat das sie mir einfach Zeit abnimmt.

Man kann auch soweit gehen aus der Sitemap.xml eine Sitemap für den User zu generieren!

In der Zwischenzeit habe ich mir mal die urllist von Florian angeschaut!
So wie das aussieht ist er schon mehrere Schritte weiter! Seine urllist.txt wird mit PHP geparst und komprimiert mit Gzip.

Gruß
Jörg

gelöschter Benutzer
am 18.04.2010, 14:36 Uhr schrieb
Antwort

$url .= \'\'.$data->loc.\'\';
Das Forum scheint hier dein < br /> wegzustreichen, zitiert man deinen Post, erkennt man, dass die Zeile eigentlich so aussieht:
$url .= \'\'.$data->loc.\'< br />\'; (ohne das Leerzeichen)

gelöschter Benutzer
am 18.04.2010, 14:56 Uhr schrieb
Antwort

Hallo Oskar

Ich habe den Code eh jetzt so überarbeitet das meine urllist.txt dynamisch erstellt wird!
Die einzige Frage die ich mir jetzt stelle ist ob Florian seine Urllist aus seiner Datenbank generiert hat!

Dazu habe ich die htaccess erweitert um :
RewriteRule ^(.*)urllist.txt$ urllist.php


<?php
if(!ob_start("ob_gzhandler")) ob_start();
header(\'Content-Type: text/plain; charset=UTF-8\');
$xml = simplexml_load_file(\'http://prskspedia.de/sitemap.xml\');
foreach ($xml->url as $data)
{
$url .= \'\'.$data->loc."\\n";
}
$xml = simplexml_load_file(\'http://prskspedia.de/sitemap/wikisitemap0.php\');
foreach ($xml->url as $data)
{
$url .= \'\'.$data->loc."\\n";
}
echo $url;
?>


Gruß
Jörg

gelöschter Benutzer
am 18.04.2010, 20:52 Uhr schrieb
Antwort

Zwei kleine Hinweise noch zur sauberen Programmierung:
Du solltest die Variable $url initialisieren, ansonsten wir ein E_NOTICE Error geworfen. Alternativ könntest du die Urls auch direkt ausgeben, statt sie erst in einer Variablen zwischenzuspeichern.
Zudem kannst du dir das ?> immer dann sparen, wenn du keine weiteren Ausgaben mehr machst.
Ansonsten sieht das sehr gut aus

Ergänzung zum schließenden PHP-Tag:
Der schließende PHP-Tag wird von PHP nicht benötigt. Allerdings kann ein schließender PHP-Tag zu Fehlern führen:
<?php
//a.php
include \'b.php\';
header(\'Content-Type: text/html\');
?>

<?php
//b.php
//einige anweisungen
?>



Statt dem denke man sich eine unabsichtlich hinzugefügte Leerzeile. Der Code würde zu einem Fehler führen, das vor einem header() Befehl keine Ausgabe erfolgen darf.
Hätte man das schließende PHP-Tag nicht gesetzt, wäre der Fehler nicht entstanden.

Das ganze findet sich mittlerweile in vielen Coding standards, u.A. in denen vom Zend Framework, von Joomla oder von Drupal. Letztere geben eine gute Übersicht über die Gründe:
http://drupal.org/coding-standards#phptags