以零转换为字符串开头的整数(并保持前导零)

时间:2012-07-14 14:49:45

标签: php javascript sql codeigniter gps

我的问题是这个,我有一个从浏览器获取GPS位置的JavaScript代码。然后,因为我无法从javascript中将这些坐标写入SQL数据库,我无法将其直接发送到php,我转到控制器“站点”,它的方法是“writeToDatabase”,我还添加了4个段到URL实际上我从javascript获得的坐标..

所以在javascript中我有:

window.location = getBaseURL() + "site/writeToDatabase/" + splittedLatitude[0] + "/" + splittedLatitude[1]
        + "/" + splittedLongitude[0] + "/" + splittedLongitude[1] + "/";

所以现在浏览器进入(只是假坐标的一个例子)www.mysite.com/index.php/site/writeToDatabase/47/707223/16/054322

现在我的站点控制器中的writeToDatabase方法读取了这些段(我使用codeigniter,因此很容易读取URL段)。在我读完片段之后,我将纬度的第一部分和纬度的第二部分连成,并且还加上一个点“。”介于两者之间(所以在这个例子中我得到47.707223和16.54322),并且我对经度做同样的事情。然后当我将这些数据写入数据库时​​,我在数据库中得到奇怪的数字,如果我的一个段开始于零(就像我上面的例子中一样),零被删除所以从054322我得到54322,这导致16.54322就像上面的例子一样:)

现在这个奇怪数字的问题只有在我尝试写入数据库整个坐标时才会出现..如果我只是写经度的第一部分,或者只是经度的第二部分(纬度相同)一切顺利且正确值得到写入..

其他人有解决这个问题的方法吗?我完全没有想法

2 个答案:

答案 0 :(得分:0)

为什么不直接发送参数:

http://www.example.com/foo/bar/?lat=47.11&lng=5.012

这确实解决了这个问题。

然而,您可以按照自己的方式(因为这些是字符串而不是整数)使用这样的简单字符串连接。

$lat = $_GET['first'] . '.' . $_GET['second];

答案 1 :(得分:0)

如果需要,整数将永远不会有前导零 - 创建CHAR字段,而不是INT(并且不要进行类型转换,以防你手动执行)。