2013-02-14 93 views
-1

我在這裏發生了一件很奇怪的事情。本地代碼運行良好,但是當我將其上傳到Web服務器時,我得到一個分析錯誤:解析遠程服務器上的錯誤,但不是本地codeigniter

解析錯誤:語法錯誤,意外的T_STRING在/path/to/codeigniter-site.com/data/application/中意見/ locationsXml.php第2行

有說「locationsXml.php」的內容:

<?php header('Content-Type: text/xml'); ?> 
<?xml version="1.0" encoding="ISO-8859-1"?> 
<locations> 
    <?php if (!empty($locations)) foreach ($locations as $location) : ?> 
    <location id="<?php echo $location->id; ?>" active="<?php echo $location->active; ?>"> 
     <name><?php echo $location->name; ?></name> 
     <long><?php echo $location->long; ?></long> 
     <lat><?php echo $location->lat; ?></lat> 
     <country><?php echo $location->country; ?></country> 
    </location> 
    <?php endforeach; ?> 
</locations> 

就像我說的,這個運行良好本地 - 我的本地PHP版本5.3.1是和遠程PHP版本是5.3.2非常令人沮喪!

預先感謝任何幫助或建議

+0

你應該在本地顯示錯誤和遠程禁用它們:P – HamZa 2013-02-14 08:46:00

+1

<?是一個PHP短標籤,因此echo'<'。'?xml version =「1.0」encoding =「ISO-8859-1」?'。'>'; – Waygood 2013-02-14 08:46:14

+0

@ThePHPUnicorn,並記住,從服務器到服務器總是有差異 – afarazit 2013-02-14 08:50:13

回答

0

遠程服務器上的short_open_tags設置可能是On,這會導致PHP錯誤地分析第2行:

<?xml ... 

被解釋爲:

<?php xml... 
     ^--- and the parser complains about this 

除了更改服務器設置,你可以寫你這樣的代碼:

<?php echo '<?xml version="1.0" encoding="ISO-8859-1"?>'; ?> 
+0

關閉short_open_tags - 完成任務!謝謝你們! – ThePHPUnicorn 2013-02-14 08:49:21

1

你的遠程服務器有short_open_tag = On這就是爲什麼你得到

您可以更改您的php.ini或做類似 echo <?xml version="1.0" encoding="ISO-8859-1"?>

相關問題