" ins GPX-File, Bugfix Leerzeichen vor Lon //------------------------------------------------- $verinfo = 'Benutzerwegepunkte von Hikr.org holen, Version 0.4, 2019-08-23'; //------------------------------------------------- // Benutzereinstellungen // Hier muss der Benutzername aus dem HTTP Pfad rein kopiert werden // http://www.hikr.org/user/Ekkehard/piz/ // ^------^ // Bei mir ist das "Ekkehard" // Weiterhin kann der Ausgabename und Pfad angepasst werden //------------------------------------------------- // User settings // You must change the variable Username according to the HTTP path of your User page // You may change the name and path of the output file //------------------------------------------------- //$username = 'Ekkehard'; $username = 'Ekkehard'; $gpxfilename = 'waypoints.gpx'; //------------------------------------------------- // Benutzung // 1.) Benutzernamen und ggf Namen der Zieldatei anpassen // 2.) Diese Datei speichern, zb unter c:\hikrorgtools\waypoints.php // 3.) Das Script benötigt den PHP Interpreter, dieser kann hier kostenfrei geladen werden // https://www.php.net/downloads.php // // 4.) Nach der Installation muss eine Konsole geöffnet werden // Bei Windows auf "Start" klicken, dann "cmd" eingeben und die Konsole auswählen und ausführen // 5.) Anschließend muss in das Verzeichnis gewechselt werden, in dem diese Datei gespeichert wurde // dies geht mit dem Befehl "cd", zb // cd \hikrorgtools // 6.) PHP ausführen und den Dateinamen dieser Datei angeben. Normalerweise ist PHP im Suchpfad // Falls PHP nicht gefunden wird muss das Ausführbare Programm gesucht und mit dem vollen Pfad // angegeben werden. // Es sollte aber wie folgt funktionieren // php waypoints.php //------------------------------------------------- // Usage // 1.) Change username and if wanted target filename // 2.) Save this file to the hdd, e.g. c:\hikrorgtools\waypoints.php // 3.) The script needs an PHP interpreter installed on the system. PHP could be downloaded free here // https://www.php.net/downloads.php // // 4.) After the PHP beiing installed open a console // On windows click to "Start" end enter "cmd" with keyboard, select console from the list // 5.) In the console switch to the correct folder where this file has been saved // The "cd" command does the job, e.g. // cd \hikrorgtools // 6.) Execute PHP while passing the name of this file as a parameter. Generally PHP is included in the search path. // If PHP is not found, you have to locate the executable and use the full path instead // Usually it work like this // php waypoints.php //------------------------------------------------- // Globale Variablen //------------------------------------------------- $tourlist = array(); $waypointlist = array(); $waypointinfo = array(); //------------------------------------------------- // ProcessMainTableRow // Bearbeitet eine Zeile in der Haupttabelle // Extrahiert einen Link auf eine Tourenseite // Trägt den Link in das globale Array ein und gibt 1 bei Erfolg zurück // sonst 0 //------------------------------------------------- function ProcessMainTableRow($ARow) { global $tourlist; $cnt = 0; // echo $ARow; $startdata = 0; do { $startdata = strpos($ARow,' 0) { // Die Header Zeile überspringen ProcessMainTableRow($row); } $cnt++; $startrow = $endrow; } while(1); return $cnt; } //-------------------------------------------------------- // ProcessMainFile // bearbeitet eine Hauptseite, extrahiert die Tabelle und gibt sie zur bearbeitung // Die Rückgabe ist 1 wenn es (vermutlich) eine weitere Seite mit Waypoints gibt // 0 wenn es keine weiteren gibt //-------------------------------------------------------- function ProcessMainFile($AMainFile) { // echo $AMainFile; // den Marker für den Anfang der Tabelle suchen $marker = ''; // Suchen ob vorhanden $starttablendx = strpos($AMainFile,$marker); if ($starttablendx === false) { // Prüfen ob gefunden return 0; //Nein, dann fertig } // echo 'Waypoint table at: '.$starttablendx."\r\n"; $marker = '
'; // Suchen ob vorhanden $endtablendx = strpos($AMainFile,$marker,$starttablendx); if ($endtablendx === false) { // Prüfen ob gefunden return 0; //Nein, dann fertig } $endtablendx = $endtablendx+strlen($marker); // echo 'Waypoint table end at: '.$endtablendx."\r\n"; $table = substr($AMainFile,$starttablendx,$endtablendx-$starttablendx); $cnt = ProcessMainTable($table); // echo $cnt; if ($cnt <= 2) return 0; //Keine Inhalte in der Tabelle, fertig return 1; // War was drin } //-------------------------------------------------------- // ProcessWayPointList // Bearbeitet eine Wegpunkteliste, wie sie sich in der Turenseite befindet //-------------------------------------------------------- function ProcessWayPointList($AWayPointList) { global $waypointlist; //echo $AWayPointList; $marker = 'href=\''; $startlink = 0; while(1) { $startlink = strpos($AWayPointList,$marker, $startlink); if ($startlink === false) { return 0; } $startlink = $startlink+strlen($marker); $endlink = strpos($AWayPointList,'\'',$startlink); if ($endlink === false) { return 0; } $link = substr($AWayPointList,$startlink,$endlink-$startlink); //echo $link."\r\n"; // Link an die globale WayPoint anhängen $waypointlist[] = $link; // Index weiter rücken $startlink = $endlink; }; return 0; } //-------------------------------------------------------- // ProcessTour // Bearbeitet eine einzelne Tour, lädt die Seite und zieht den Block mit den Wegepunkiten raus //-------------------------------------------------------- function ProcessTour($ATourLink) { // echo $ATourLink."\r\n"; echo 'Lade Tourenseite: '.$ATourLink."\r\n"; $tourpage = file_get_contents($ATourLink); //echo $tourpage; // Den Anfang der Liste funden $marker = 'Wegpunkte:'; $startndx = strpos($tourpage,$marker); if ($startndx === false) { return 0; } $startndx = $startndx+strlen($marker); // Das Ende der Liste finden $marker = ''; $endndx = strpos($tourpage,$marker,$startndx); if ($endndx === false) { return 0; } // Den Anfang der Liste korrigieren auf