2016-04-27 9 views
1

私は本当に奇妙な問題に直面しています2週間前に働いていたし、今、次のエラーを投げているスクリプトを使用して:"<br /><b>解析エラー</b>:構文エラー、予期しない '{' 行に<b>/home/site/public_html/devel/modules//filter.php</b><br />に"

"<br /> <b>Parse error</b>: syntax error, unexpected '{' in <b>/home/site/public_html/devel/modules/filter.php</b> on line <b>35</b><br /> " 

これは、コードであり、私は何回見て千を持っていたが、私はそれで間違っているかを把握することはできません。.. 。

<?php 

define('_JEXEC',1); 
define('JPATH_BASE', realpath(dirname(__FILE__).'/../..')); 

require_once(JPATH_BASE.'/includes/defines.php'); 
require_once(JPATH_BASE.'/includes/framework.php'); 
$mainframe = JFactory::getApplication('site'); 
$mainframe->initialise(); 
$db = JFactory::getDBO(); 

ob_start(); 
header("Access-Control-Allow-Origin: *"); 
header('Content-Type: application/json'); 


    function getCountries() { 
    try { 
     $db = JFactory::getDBO(); 
     $query = "SELECT id, name FROM `#__countries`"; 
     $db->setQuery($query); 
     $result = $db->loadRowList(); 
     if(!$result) { 
     throw new exception("Country not found."); 
     } 
     $res = array(); 
      foreach($result as $key=>$value) { 
     $res[$value[0]] = $value[1]; 
     } 
     $data = array('status'=>'success', 'tp'=>1, 'msg'=>"Countries fetched successfully.", 'result'=>$res); 
    } 
    catch (Exception $e) { 
     $data = array('status'=>'error', 'tp'=>0, 'msg'=>$e->getMessage()); 
    } 
    finally { 
     return $data; 
    } 
    } 

    // Fetch all states list by country id 
    function getStates($countryId) { 
    try { 
     $db = JFactory::getDBO(); 
     $query = "SELECT id, name FROM #__states WHERE country_id=".$countryId; 
     $db->setQuery($query); 
     $result = $db->loadRowList(); 
     if(!$result) { 
     throw new exception("State not found."); 
     } 
     $res = array(); 
     foreach($result as $key=>$value) { 
     $res[$value[0]] = $value[1]; 
     } 
     $data = array('status'=>'success', 'tp'=>1, 'msg'=>"States fetched successfully.", 'result'=>$res); 
    } catch (Exception $e) { 
     $data = array('status'=>'error', 'tp'=>0, 'msg'=>$e->getMessage()); 
    } finally { 
     return $data; 
    } 
    } 

// Fetch all cities list by state id 
    function getCities($stateId) { 
    try { 
     $db = JFactory::getDBO(); 
     $query = "SELECT id, name FROM #__cities WHERE state_id=".$stateId; 
     $db->setQuery($query); 
     $result = $db->loadRowList(); 
     if(!$result) { 
     throw new exception("City not found."); 
     } 
     $res = array(); 
     foreach($result as $key=>$value) { 
     $res[$value[0]] = $value[1]; 
     } 
     $data = array('status'=>'success', 'tp'=>1, 'msg'=>"Cities fetched successfully.", 'result'=>$res); 
    } catch (Exception $e) { 
     $data = array('status'=>'error', 'tp'=>0, 'msg'=>$e->getMessage()); 
    } finally {return $data;}} 

try { 
    if(!isset($_GET['type']) || empty($_GET['type'])) { 
    throw new exception("Type is not set."); 
    } 
    $type = $_GET['type']; 
    if($type=='getCountries') { 
    $data = getCountries(); 
    } 

    if($type=='getStates') { 
    if(!isset($_GET['countryId']) || empty($_GET['countryId'])) { 
     throw new exception("Country Id is not set."); 
    } 
    $countryId = $_GET['countryId']; 
    $data = getStates($countryId); 
    } 

    if($type=='getCities') { 
    if(!isset($_GET['stateId']) || empty($_GET['stateId'])) { 
     throw new exception("State Id is not set."); 
    } 
    $stateId = $_GET['stateId']; 
    $data = getCities($stateId); 
    } 

} catch (Exception $e) { 
    $data = array('status'=>'error', 'tp'=>0, 'msg'=>$e->getMessage()); 
} finally { 
    echo json_encode($data); 
} 

ob_flush(); 
?> 

誰かが間違っていることを教えてもらえますか?

+3

どのバージョンのPHPですか? 'finally'はPHP> = 5.5が必要です –

+0

現在インストールされているPHPのバージョンは5.4.5です。ありがとうございました、私はこれがPHPのバージョンによって引き起こされる可能性があることを知らなかった – Mastermind

答えて

1

これは、PHP 5.6で問題なく解析されます。 35行目はfinallyのキーワードです。 PHPのバージョンが5.5より古い場合は、ここで解析エラーが発生すると思います。

関連する問題