2014-10-11 96 views
1

我有以下功能來計算工作日計算中的星期日。它在我的測試服務器上運行,它是在Mac上運行的MAMP。當我將代碼移動到運行LAMP的Unbuntu服務器時,它停止工作(表現爲頁面沒有加載任何東西)。MAMP與Ubuntu服務器之間的語法差異

我無法弄清楚爲什麼,並嘗試了單引號和雙引號的所有不同組合。

功能是: -

// function to account for Sundays, and public holidays. Add holiday dates in $holidayDays variable 
function get_next_business_date($from, $days) { 
$workingDays = [1, 2, 3, 4, 5, 6]; # date format = N (1 = Monday, ...) 
$holidayDays = ["*-12-25","*-12-26", "*-01-01", "2014-12-24"]; # variable and fixed holidays 

$from = new DateTime($from); 
while ($days) { 
    $from->modify("+1 day"); 
    if (!in_array($from->format('N'), $workingDays)) continue; 
    if (in_array($from->format('Y-m-d'), $holidayDays)) continue; 
    if (in_array($from->format('*-m-d'), $holidayDays)) continue; 
    $days--; 
} 
return $from->format("Y-m-d"); # or just return DateTime object 
} 

$today = date("Y-m-d", strtotime("today")); 
$tomorrow = get_next_business_date("today", 1); 
$twodays = get_next_business_date("today", 2); 
$yesterday = date("Y-m-d", strtotime("yesterday")); 

我迷路了,爲什麼這可能是。

+0

PHP中的「頁面無法加載任何內容」或「死亡白屏」意味着您需要檢查錯誤日誌。總是在開發和測試代碼時,使用'error_reporting(E_ALL); ini_set('display_errors',1);'在腳本的頂部。錯誤將被詳細列出。 – 2014-10-11 12:10:34

+0

你確定這是與這個功能有關嗎?也許這是一個權限問題呢? – Fluffeh 2014-10-11 12:10:40

+0

review /var/log/apache2/error.log – 2014-10-11 12:11:17

回答

0

根據各種評論中的回覆,這是服務器版本問題。我的測試盒上的PHP版本比現場版本更新。

如果它有任何用處,我在Mac Mini上使用MAMP作爲我的5.5.3的測試環境,並且在UBUNTU 12.04服務器盒子上使用LAMP,其中有5.3。我不想升級Ubuntu版本,只是PHP版本,並根據這個做了http://phpave.com/upgrade-php-5-3-php-5-5-ubuntu-12-04-lts/

要注意的事情(如果你不知道)是你的php代碼的默認目錄將會改變從/ var/www到/ var/www/html。您可以將您的PHP移動到/ var/www/html文件夾或根據上面的鏈接更改默認文件夾。我懷疑,更改默認設置可能會對未來版本產生影響,因爲他們希望代碼駐留在/ var/www/html中。

該文件夾還存在一些權限問題,如果您要複製並創建子文件夾,您可能希望知道該文件夾的權限問題。

希望這對某人有用。

1

您可能在機器之間有版本變化。

在Ubuntu上,您可以檢查文件/var/log/apache2/error.log

tail -f /var/log/apache2/error.log 

看到被拋出什麼樣的錯誤。

要檢查您的計算機上當前的PHP版本,你可以使用

php -v 

命令行(需要安裝PHP5-CLI模塊)

另一種方式是把一個PHP文件與:

<?php 
    phpinfo(); 
?> 

在您的網頁目錄中,並用您的瀏覽器打開它。

+0

將執行此操作並報告回來。 – Jason 2014-10-11 13:39:49

+0

它看起來是實時環境和測試環境之間的版本差異。在鞋子上做事的危險:) – Jason 2014-10-17 07:57:48

+0

@jason你是否設法克服你的問題?這是一個語法差異的問題 – 2014-10-17 10:17:40

相關問題