-3

在下面的代码中不断收到 $end 错误。我已经使用键盘清除了一些错误,但现在我被卡住了。我知道这与冒号和分号有关,但我似乎不知道问题出在哪里。帮助

<?php

$dbName="";
$dbUsername="";
$dbPassword="";

$fromPC=$_POST['fromPC'];
$toPC=$_POST['toPC'];


//

function getDistance($lat1, $long1, $lat2, $long2, $unit)
{

  if($unit=="miles"){
      $earth = 3960; //miles
  }else{
     $earth = 6371; //kilometres
  }

    //From co-ordinates
    $lat1 = deg2rad($lat1);
    $long1= deg2rad($long1);

    //To co-ordinates
    $lat2 = deg2rad($lat2);
    $long2= deg2rad($long2);

    // The Haversine Formula
    $dlong=$long2-$long1;
    $dlat=$lat2-$lat1;

    $sinlat=sin($dlat/2);
    $sinlong=sin($dlong/2);

    $a=($sinlat*$sinlat)+cos($lat1)*cos($lat2)*($sinlong*$sinlong);

    $c=2*asin(min(1,sqrt($a)));



$d=round($earth*$c);

    return $d;
}




if( (!empty($fromPC)) && (!empty($toPC)) )
{
    mysql_connect("********",$dbUsername,$dbPassword);
    @mysql_select_db($dbName) or die( "Unable to select database");

  // basic cleaning of input
    $firstPC = strtoupper(preg_replace("/[^a-zA-Z0-9]/","", ));
    $secondPC = strtoupper(preg_replace("/[^a-zA-Z0-9]/","", ));

    // get first details
    $query = 'SELECT `latitude`, `longitude` FROM `uk_postcodes` WHERE `postcode`="'.$firstPC.'";';
    $result = mysql_query($query);
    $first = mysql_fetch_row($result);
    $checkFirst=mysql_num_rows($result);

  // get second details
    $query = 'SELECT `latitude`, `longitude` FROM `uk_postcodes` WHERE 

`postcode`="'.$secondPC.'";';
    $result = mysql_query($query);
    $second = mysql_fetch_row($result);
  $checkSecond=mysql_num_rows($result);

  // ensure there were results to calculate with
  if( ($checkFirst<1) || ($checkSecond<1) ){
      $outputResults="Unrecognised postcode entered.";
  }else{
        $distance = getDistance($first[0], $first[1], $second[0], $second[1], "miles");
        $outputResults = "The distance between postcode: $firstPC and postcode: $secondPC is ".$distance." miles.";
  }

  // always close your connections !!
    mysql_close();
}

?>


<?=$outputResults?>
4

1 回答 1

0

解析错误,这个

$firstPC = strtoupper(preg_replace("/[^a-zA-Z0-9]/","", ));
    $secondPC = strtoupper(preg_replace("/[^a-zA-Z0-9]/","", ));

应该

$firstPC = strtoupper(preg_replace("/[^a-zA-Z0-9]/","","Any String"));
    $secondPC = strtoupper(preg_replace("/[^a-zA-Z0-9]/","","Any String" ));
于 2013-03-27T16:41:13.540 回答