Split()已被弃用。

5

可能是重复问题:
PHP分割替代方法?

 // Successful geocode
$geocode_pending = false;
$coordinates = $xml->Response->Placemark->Point->coordinates;
$coordinatesSplit = split(",", $coordinates);
// Format: Longitude, Latitude, Altitude
 $lat = $coordinatesSplit[1];
$lng = $coordinatesSplit[0];

你好,这是我关于地理位置代码的一部分。我试图将存储的地址更改为纬度/经度,然后将纬度/经度保存回数据库。 他们使用split函数将字符串放入数组中,但自php 5.3.0以来该函数已被弃用。 有人有解决方法吗?
谢谢!
编辑: 当我使用以下代码时:
$coordinatesSplit = preg_split(",", $coordinates);

我收到了以下错误:

preg_split() [function.preg-split]: 没有结束分隔符

最后编辑: 当我将一些内容添加到数据库时,长/宽度自动保存。但是当我想要在数据库中添加例如第6个地址时,用于生成经度/纬度的脚本会自动对数据库中的所有记录进行操作。是否有可能仅对最后一个添加的记录执行此操作?----> 数据库中的地理位置经度/纬度

@felix Kling谢谢,抱歉是我的错。请原谅。现在我遇到了这个错误:preg_split() [<a href='function.preg-split'>function.preg-split</a>]: No ending delimiter。 - Niels
","不是一个正则表达式,因此不需要使用preg_split。应该使用explode。如果要使用正则表达式,建议先查看http://www.php.net/manual/en/reference.pcre.pattern.syntax.php了解语法。 - Felix Kling
谢谢您的快速回答。当我使用这个代码 $coordinatesSplit = explode(",", $coordinates); 时,地理定位失败了。编辑,使用explode函数解决了所有问题,但我还有另一个问题。 - Niels
3
请问一个全新的问题,不要把问题改成完全不同的东西……在提问之前也请尝试一下。 - Felix Kling
@FelixKling 这是我尝试的主题和解决方案链接 http://stackoverflow.com/questions/10543719/geolocation-long-lan-in-database - Niels
尝试这个:$coordinatesSplit = preg_split("/,/", $coordinates); - Ironwind
2个回答

13

您可以使用以下代码简化:

list($lat,$lng) = explode(",",$coordinates);

这直接把explode的结果分配给了两个变量。


升级到PHP7后将需要这个。 - Yasiru G

4

如评论中所讨论的,使用explode()代替:

$coordinatesSplit = explode(",", $coordinates);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接