2014-11-22 62 views
1

我有一個問題,我一直試圖解決兩個現在,我無法找到我需要解決它的信息。如何從PHP中的.GPX文件讀取值?

我想要做的是從.gpx文件中取出lat,lon和ele值並將它們放入表格中。

我製作了頁面讓用戶將gpx文件上傳到服務器上。然後,我創建一個新表,稱爲一個,兩個,三個等我的數據庫中的下一個數字,稱爲'vluchten'。

該表的字段爲lat,lon和ele,所有雙打。

現在我需要打開任何.gpx文件,用戶可能會上傳並提取lats,lons和eles到我的表格中。

我已經研究過使用php文件系統函數(fopen,fseek等),但它們似乎並沒有滿足我的需求。我也試過把它看作是一種XML也行不通的(也許我犯了錯誤)。

任何有關我如何能夠從.gpx文件中獲取值並將它們放入數據庫表的建議非常受歡迎! PHP頁面將接收$_POST['name']中lat,lon和ele需要進入的表名。

所以總之我的問題是:如何將lon,lat和ele從.gpx中取出並將它們放入使用SQL的表中?

+1

gpx文件以xml編碼。你有沒有試過用'simplexml_load_file'讀這些gpx文件? http://php.net/manual/en/function.simplexml-load-file.php – 2014-11-22 16:01:42

+0

請參閱此參考問題以瞭解如何使用PHP處理XML:[如何在PHP中解析和處理HTML/XML ?](http://stackoverflow.com/q/3577641/367456) – hakre 2014-11-22 21:03:16

+0

非常感謝,你們倆!很有幫助! – 2014-11-23 17:46:18

回答

2

這段小小的php代碼將從gpx文件中讀取每個路點。

您可以編寫一些SQL代碼,將每個航點的行插入到表中。

$gpx = simplexml_load_file("test.gpx"); 

foreach ($gpx->wpt as $pt) { 
    $lat = (string) $pt['lat']; 
    $lon = (string) $pt['lon']; 
    $ele = (string) $pt->ele; 
    $name = (string) $pt->name; 
} 

unset($gpx); 

類似的代碼將提取從XML trk->trkseg->trkptrte->rtept數據。