php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2010

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.05.2010, 20:05  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard [Erledigt] openGeoDB - Entfernung zweier PLZ mittels API

Hallo,

wie der Betreff schon sagt möchte ich mittels openGeoDB die Entfernung zweier Städte ermitteln.

KLappt auch wunderbar!!!

Allerdings gibt er mir immer 2 Fehlermeldungen aus und ich weiß nicht woran es liegen kann. da es ja eigentlich funktioniert!?

Php Ausgabe

PHP-Code:
require_once("../control/ogdbDistance.lib.php");

echo 
"Entfernung: ".ogdbDistance(44369,89079); 
Der Code für das holen und berechnen der Daten

PHP-Code:
<?

define
("OGDB_REMOTE_DATA_FILE","http://fa-technik.adfc.de/code/opengeodb/PLZ.tab");
define("OGDB_LOCAL_DATA_FILE","./PLZ.tab");

function 
ogdbDistance($origin,$destination) {
    if ( !
is_file(OGDB_LOCAL_DATA_FILE) || filesize(OGDB_LOCAL_DATA_FILE)==) {
        
$fileData file_get_contents(OGDB_REMOTE_DATA_FILE);
        if ( 
$fileData == FALSE ) {
            die(
"ABBRUCH: konnte Daten nicht laden (".OGDB_REMOTE_DATA_FILE.")\n");
        }
        if ( 
file_put_contents(OGDB_LOCAL_DATA_FILE,$fileData) == FALSE ) {
            die(
"ABBRUCH: konnte Daten nicht speichern (".OGDB_LOCAL_DATA_FILE.")\n");
        }
        unset(
$fileData);
    }
    
$fileData = @file_get_contents(OGDB_LOCAL_DATA_FILE);
    if ( 
$fileData == FALSE ) {
        die(
"ABBRUCH: konnte Daten nicht laden (".OGDB_LOCAL_DATA_FILE.")\n");
    }
    
$fileData explode("\n",$fileData);
    for ( 
$i=0$i count($fileData); $i++ ) {
        
$fileRow explode("\t",$fileData[$i]);
        if ( 
$origin == $fileRow[0] ) {
            
$origin_lon deg2rad($fileRow[2]);
            
$origin_lat deg2rad($fileRow[3]);
        }
        if ( 
$destination == $fileRow[0] ) {
            
$destination_lon deg2rad($fileRow[2]);
            
$destination_lat deg2rad($fileRow[3]);
        }
    }
    return 
acos(sin($destination_lat)*sin($origin_lat)+cos($destination_lat)*cos($origin_lat)*cos($destination_lon $origin_lon))*6375;
}
?>
Die Ausgabe ist wie gesagt richitg aber wie bekomme ich die Fehlermeldungen weg!?

Ausgabe:

Notice: Undefined offset: 1 in /var/www/www/kunden/10507/dein-geschenk-tisch.de/html/chat/control/ogdbDistance.lib.php on line 24
Notice: Undefined offset: 1 in /var/www/www/kunden/10507/dein-geschenk-tisch.de/html/chat/control/ogdbDistance.lib.php on line 28
Entfernung: 397.9428652251
Rutor ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.05.2010, 20:10  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich sehe da keinen Offset 1. Offenbar ist das nicht das richtige Script.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 10.05.2010, 20:25  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das habe ich mich auch gefragt - komisch ist nur, dass es das richtige ergebniss liefert?!

Habe es auch mit:

PHP-Code:
        $fileRow explode("\t",$fileData[$i]); 
        if ( 
$origin == $fileRow[1] ) { 
            
$origin_lon deg2rad($fileRow[2]); 
            
$origin_lat deg2rad($fileRow[3]); 
        } 
        if ( 
$destination == $fileRow[1] ) { 
            
$destination_lon deg2rad($fileRow[2]); 
            
$destination_lat deg2rad($fileRow[3]); 
        } 
statt

PHP-Code:
        $fileRow explode("\t",$fileData[$i]); 
        if ( 
$origin == $fileRow[0] ) { 
            
$origin_lon deg2rad($fileRow[2]); 
            
$origin_lat deg2rad($fileRow[3]); 
        } 
        if ( 
$destination == $fileRow[0] ) { 
            
$destination_lon deg2rad($fileRow[2]); 
            
$destination_lat deg2rad($fileRow[3]); 
        } 
probiert:

Selbes Ergebniss und selbe Fehlermeldung!?!
Rutor ist offline  
Alt 11.05.2010, 00:05  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Fang doch mal damit an uns zu verraten welches Zeile 24 und 28 sind. Kann auch selber zaehlen, aber meistens ist ja doch nur ein Quellcodeausschnitt der gepostet wird. $fileData[$i] seh ich zumindest schonmal in der Naehe.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online  
Alt 11.05.2010, 00:07  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich behaupte mal, Du schraubst irgendwie am falschen Script rum.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 11.05.2010, 00:18  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.267
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Leere Zeile im CSV schaetze ich eher.
__________________
"Nuschel ich?" - "Was?"
Chriz ist gerade online  
Alt 11.05.2010, 00:22  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ich sehe da aber nur einen potentiellen Kandidaten für Offset 1: $fileData[$i]
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 11.05.2010, 08:09  
Erfahrener Benutzer
 
Registriert seit: 30.12.2009
Beiträge: 451
PHP-Kenntnisse:
Anfänger
Rutor ist zur Zeit noch ein unbeschriebenes Blatt
Standard

24 und 28 sind die zeilen mit if(........filerow[0]) bzw if(........filerow[1])

Geändert von Rutor (11.05.2010 um 09:33 Uhr).
Rutor ist offline  
Alt 11.05.2010, 16:12  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Sag jetzt nicht, DU hast Deine Fehlermeldung vom "Versuch" mit if ( $origin == $fileRow[1] ) { oben gepostet
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 03.09.2010, 07:33  
Neuer Benutzer
 
Registriert seit: 03.09.2010
Beiträge: 1
PHP-Kenntnisse:
Fortgeschritten
mikkel befindet sich auf einem aufstrebenden Ast
Standard

Mojn Rutor,
ist eigentlich ganz einfach...
Das
Code:
$fileData = explode("\n",$fileData);
erzeugt als letzte eine Leerzeile.
Das count($fileData) zählt die mit - da gibs aber nichts für das row-explode zu finden.
Daher:
Code:
for ( $i=1; $i < count($fileData)-1; $i++ ) {
und alles ist gut...

Viele Grüße - Michael
mikkel ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XML mittels explode zerlegen ocean85 PHP Tipps 2010 7 19.03.2010 13:33
Bearbeitung einer XML Datei mittels PHP kayyy PHP Tipps 2009 3 15.12.2009 15:02
Entfernung ermitteln Dragonfly Off-Topic Diskussionen 10 13.10.2009 12:53
Variable mittels hidden-Form übergeben OoNanaoO PHP Tipps 2009 5 03.06.2009 14:31
Wireshark SSL Handshake debugging-Handshake protokoll mittels PHP + Curl brian johnson Off-Topic Diskussionen 0 06.11.2008 11:54
GeoDaten / OpenGeoDB tinchen PHP Tipps 2007 14 07.03.2007 11:07
Übergabe von eingegebenem String mittels Formular und POST?! vampsoftchef PHP Tipps 2006 7 18.10.2006 20:06
entfernung mittels plz berechnen kid01 PHP-Fortgeschrittene 10 13.10.2006 17:53
mysql mittels php abfragen- array problem PHP Tipps 2005-2 6 20.07.2005 15:21
Entfernung der Mitglieder PHP-Fortgeschrittene 6 01.05.2005 14:52
[Erledigt] Dateiupload mittels POST PHP-Fortgeschrittene 5 04.02.2005 07:07
[Erledigt] Neuen Benutzer mittels PHP in MYSQL Anlegen PHP-Fortgeschrittene 1 28.10.2004 17:22
[Erledigt] Baumstrukturjavascript mittels PHP generieren HTML, Usability und Barrierefreiheit 4 27.08.2004 11:56
sendmail mittels popen ausführen??? PHP Tipps 2004 0 09.08.2004 19:54

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
opengeodb, ogdbdistance, http://www.php.de/php-einsteiger/67842-erledigt-opengeodb-entfernung-zweier-plz-mittels-api.html, opengeodb api, opengeodb entfernung, plz api, opengeodb entfernung berechnen, ogdbdistance.lib, opengeodb plz, geodb plz, opengeodb distanz, php opengeodb, ogdbdistance.lib.php, open geo db, php entfernung zwei plz, opengeodb php entfernung, php entfernung berechnen, entfernung plz, postleitzahlen php lib, plz entfernung php

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:06 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum