从 DMS 符号中提取值的分解函数

Explode function to extract values from DMS notation

我有一个 table,其位置存储格式为:

30°28'25"  
68°28'43"

在从 DMS 转换为 DEC 的过程中,我需要一个函数将字符串 68°28'43"(值符号之间没有空格)转换为

$deg = 68  
$min = 28  
$sec = 43 

或类似的东西。谢谢

只需使用preg_match_all :)

以下正则表达式简单地捕获恰好包含 2 个数字 ({2}) 的每个数字 (\d) 并将它们分组(表达式两边的大括号)

<?php
$value = "68°28'43\"";
preg_match_all('/(\d{2})/', $value, $matches);

print_r($matches);

$matches 将是一个包含捕获结果(数字)的数组

Array
(
    [0] => Array
        (
            [0] => 68
            [1] => 28
            [2] => 43
        )

    [1] => Array
        (
            [0] => 68
            [1] => 28
            [2] => 43
        )

)

然后您可以使用 list() 函数将其简单地分配给您的变量,如下所示:

list($deg, $min, $sec) = $matches[0];

echo $deg; // 68
echo $min; // 28
echo $sec; // 43