如何从PHP中读取.GPX文件中的值?

时间:2014-11-22 15:43:40

标签: php mysql xml gpx

我有一个问题,我现在已经尝试解决了两天,但我无法找到解决问题所需的信息。

我想要做的是从.gpx文件中获取lat,lon和ele值并将它们放入表中。

我制作了一些页面,让用户将gpx文件上传到服务器上。然后,我创建了一个名为一,二,三等的新表,我的数据库中的下一个数字叫做' vluchten'。

该表包含lat,lon和ele的字段,所有双打。

现在我需要打开用户可能上传的任何.gpx文件,并将lats,lons和eles提取到我的表中。

我已经研究过使用php文件系统函数(fopen,fseek等),但它们似乎并不适合我的需求。我也尝试将它读作一个既不起作用的XML(也许我犯了错误)。

我非常欢迎任何有关如何从.gpx文件获取值并将它们放入数据库表的建议! PHP页面将收到lat,lon和ele需要在$_POST['name']中进入的表名。

所以简而言之,我的问题是:如何从.gpx中取出lon,lat和ele并使用SQL将它们放入表中?

2 个答案:

答案 0 :(得分:3)

这段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数据。

答案 1 :(得分:2)

此代码用于读取gpx / gps文件##

简单的xml

 <?php
//open gpx file
$gpx = simplexml_load_file("test.gpx");
foreach ($gpx->trk as $trk) {
    foreach($trk->trkseg as $seg){
        foreach($seg->trkpt as $pt){
            echo "<p> lat- ";
            echo $pt["lat"];
            echo "   lon-";
            echo $pt["lon"];
            echo"<p>";
        }}}
unset($gpx);
?>