Str_replace hakkında sadece bir soru

4 Cevap php

I str_replace PHP hakkında bir sorum var. Ben ne zaman:

$latdir = $latrichting.$Lat;

If (preg_match("/N /", $latdir)) {
    $Latcoorl = str_replace(" N ", "+",$latdir);
}
else {
    $Latcoorl = str_replace ("S ", "-",$latdir);
}

print_r($latdir);
print_r($Latcoorl);

print_r($latdir); verir: N52.2702777778

fakat print_r ($Latcoorl); verir :N52.270277777800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Evet, sıfır bir sürü ekler. Birisi sırf eğlenmek için bu davranışı explane miyim?

print_r ($latrichting);

vermek en: N

print_r ($Lat);

Bu vermek garip uzun numara.

Yani onun muhtemelen, sen str_replace komutu düşünmek değil mi?

4 Cevap

$latmin2 = bcdiv($latsec, 60, 20);
$latmin_total = $latmin + $latmin2;
$lat = bcdiv($latmin_total, 60, 20);

$latdir = array("N" => 1, "S" => -1);

$latcoorl = $latdir * $latdir[$latrichting];

Yeni Yılınız Kutlu Olsun.

Sizin dize o N gibi dökülüyor değer görünüyor ise arama kelimesi 'N' önce bir boşluk vardır değiştirin:

O halde bütün sıfır ile ilgisi var ne de emin değil.

Benim sistem bu kod parçası üzerinde:

<?php
$latdir = ':N52.2702777778';

If (preg_match("/N /", $latdir)) {
    $Latcoorl = str_replace(" N ", "+",$latdir);
    }
    else {
        $Latcoorl = str_replace ("S ", "-",$latdir);
        }

print_r($latdir);
print_r($Latcoorl);
?>

aşağıdaki sonucu verir:

:N52.2702777778:N52.2702777778

Benim en iyi tahminim 0 serie yazdıran bu kodundan sonra bir şey olması.

Bunu nasıl yapacağını; Sadece sayısal olarak her şeyi tutar ve dize moduna sukut etmez Anthony'nin orijinal cevabı varyasyon.

$Latcoorl = ($latrichting == "N") ? ($Lat) : (-1 * $Lat);