2011-04-12 56 views
1

阻斷代碼,我有下面的代碼,它在我的本地XAMPP和測試的Linux虛擬主機偉大的工作:標籤/縮進的Windows Server

<?php 
// include config file 
include('config.php'); 

// get page intel 
$_PAGE = switchPage($_GET); 

// require language file 
require_once("languages/".$_PAGE['language'].".lang.php"); 

// include header file 
include('includes/header.inc.php'); 
?> 

      <section id="main" class="clearfix"> 

       <?php 
       // include correct page 
       include($_PAGE['include_path']); 
       ?> 

      </section> 

<?php 
// include footer file 
include('includes/footer.inc.php'); 
?> 

我的客戶擁有PHP 5.2.6安裝在Windows服務器。託管公司聲稱,在下面snipet中使用的標籤/縮進不適用於windows php託管。

  <?php 
      // include correct page 
      include($_PAGE['include_path']); 
      ?> 

所以他們聲稱我的代碼是無效的PHP代碼..有人可以請教嗎?我不想重寫我的代碼只是因爲我使用的所有縮進來保持我的代碼清潔和可讀。

+0

您的代碼是有效的PHP。定義'不起作用'。 – Maerlyn 2011-04-12 16:03:29

+0

這完全是無稽之談。與大多數現代語言一樣,PHP對於空白和佈局幾乎沒有規定。 – 2011-04-12 16:12:20

回答

0

如果您使用製表符或空格,則不會有任何區別。這仍然是有效的PHP。

+0

單行答案=使其成爲評論plz。 – mario 2011-04-12 16:17:01

1

所以他們聲稱我的代碼是無效的PHP代碼..有人可以請教嗎?

一方面,他們充滿了它。這是有效的代碼。

另一方面,該代碼可能有問題 - 如果這是在文件的開始處開始<?php標記。這是PHP可以生成的臭名昭着的「無法發送頭文件,頭文件已發送」錯誤的第二個原因。每個PHP文件不應該有任何空格在打開PHP標記之前。

該標記位於文檔的中間,因此是而不是有問題。

+0

但比我應該得到一個錯誤,說「不能發送標題,..」。我沒有得到狗屎.. – 2011-04-12 19:27:50

+0

@Sam,嘗試上傳一個簡單的文件,只包含'<?php phpinfo(); ?>看看它是否有效。如果沒有,那麼主機壞了。 – Charles 2011-04-12 20:06:15

0

也許發生的事情是,你正在用換行符(這是linux使用的)而不是回車+換行符(窗口)結束每一行。

如果新行字符被忽略,那麼文件中的所有代碼都將在一行中結束,從而導致各種問題(例如,像'// hello'這樣的註釋將在一頁中途註銷,最終將註釋掉所有後面的代碼)。

嘗試將文件轉換爲Windows格式(CR + LF)。你可以用一個像Notepad ++這樣的好文本編輯器來完成它。

和其他人一樣,你如何縮進你的代碼並不重要。

+0

PHP是行結束不可知的。它將成功讀取和解析具有LF,CRLF或普通舊CR的文件,供您爲觀衆中的史前Mac粉絲使用。 (在5.3.6中測試) – Charles 2011-04-12 16:41:45

+0

好吧,我遇到了這個問題,我之前用Linux上的服務器上的文件(僅CR)保存了文件。不能傷害嘗試:) – 2011-04-12 16:46:13