从 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
我有一个 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