2014-10-11 24 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

相关问题