2 回答

TA貢獻1828條經驗 獲得超3個贊
在 PHP 中比較浮點值可能會有問題。如果這是您所要求的,您可以使用 bccomp() 來比較浮點值。
$a = '59.68000';
$b = '59.85000';
echo between($a, $b, '59.68001') . "\n"; // in range
echo between($a, $b, '59.68000') . "\n"; // exact match
echo between($a, $b, '59.88000') . "\n"; // higher than range
echo between($a, $b, '59.67000') . "\n"; // lower than range
function between($lower, $upper, $value)
{
// Value is greater than lower bound of range
$check1 = bccomp($value, $lower, 6) >= 0;
// Value is less than upper bounds of range
$check2 = bccomp($upper, $value, 6) >= 0;
if ( $check1 && $check2 ) {
return true;
}
return false;
}
使用功能:
foreach(Feed('https://www.vegvesen.no/trafikk/xml/savedsearch.rss?id=601') as $f ) {
if (strpos($f->title, $title) !== false) {
$long = $f->children('georss', true)->children('gml', true)->children('gml', true);
$lat = $f->lattitude_value(); // Replace me!!
if ( between('59.68000', '59.85000', $long) && between('5.510000', '8.750000', $lat) ) {
echo $long . ' ' . $lat . "<br>";
}
}
}

TA貢獻1111條經驗 獲得超0個贊
我到處玩,發現這是解決我的問題的最佳方法:
foreach(Feed($url) as $f ) {
if (strpos($f->title, $title) !== false){
$pos = $f->children('georss', true)->children('gml', true)->children('gml', true);
list($number1, $number2) = explode(' ', $pos);
if ($number1 > 50.00000 && $number1 < 71.00000){
if ($number2 > 4.510000 && $number2 < 10.750000){
echo $f->children('georss', true)->children('gml', true)->children('gml', true). "<br>";
}
}
}
}
- 2 回答
- 0 關注
- 141 瀏覽
添加回答
舉報