我有一个站点(基于ZEND框架)并托管在1and1服务器上.
1and1服务器使用PHP版本5.2.17和5.4.5.我需要将PHP版本5.4.5仅用于几个文件.这是因为如果我使用PHP 5.4.5,我的其他一些文件会显示错误,但它们使用PHP 5.2.17执行正常.
在我的.htaccess文件中,下面的行是先前编写的,以使用PHP 5.2.17
AddType x-mapp-php5 .php
Run Code Online (Sandbox Code Playgroud)
要使用PHP 5.4.5我必须使用下面的行(使用此代码的说明将在1and1常见问题页面上找到)
AddHandler x-mapp-php6 .php
Run Code Online (Sandbox Code Playgroud)
常见问题网址:
有没有办法只使用PHP 5.4.5的那些特定文件?
我尝试在.htaccess中使用下面的行,但它不起作用:
AddType x-mapp-php5 .php
AddHandler x-mapp-php6 FilenameController.php
Run Code Online (Sandbox Code Playgroud)
编辑
我试着编辑5.2代码.我正在使用PEAR包来创建Excel表格,它可以在PHP 5.2.17中正常工作,但在PHP 5.4.5上显示以下错误
致命错误:无法重新声明_PEAR_call_destructors()
此更改为.htaccess文件
AddType x-mapp-php5 .php
AddHandler x-mapp-php6 .php6
SetEnv APPLICATION_ENV development
Options -MultiViews
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^FilenameController\.php$ FilenameController.php6 [L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
如果我将FilenameController.php的文件名更改为FilenameController.php6,并且当我尝试访问其生成的页面时,会生成404"找不到页面"错误.
我正在阅读作者Kent Beck撰写的名为"测试驱动开发实例"的书.
我试图在PHP中编写类似的功能,但不理解步骤.
原功能:
测试功能:
public void testEquality() {
assertTrue(new Dollar(5).equals(new Dollar(5)));
assertFalse(new Dollar(5).equals(new Dollar(6)));
}
Run Code Online (Sandbox Code Playgroud)
班级功能:
public boolean equals(Object object) {
Dollar dollar = (Dollar) object;
return amount == dollar.amount;
}
Run Code Online (Sandbox Code Playgroud)
我的代码:
测试功能:
public function setup() {
$this->dollarFive = new Dollar(5);
}
public function testEquality() {
$this->assertTrue($this->dollarFive->equals(new Dollar(5)));
}
Run Code Online (Sandbox Code Playgroud)
类功能:
class Dollar
{
public function __construct($amount) {
$this->amount = (int) $amount;
}
public function equals(Dollar $object) {
$this->Object = $object;
return $this->amount == $this->Object;
}
}
Run Code Online (Sandbox Code Playgroud)
执行测试用例时,我收到以下错误.
类Dollar的对象无法转换为int
需要一些帮助.我怎样才能解决这个问题?
我将下面提到的代码(实际上是配置)写入文件(config.php)中,我想将 config.php 中写入的内容写入另一个文件(check.php)
config.php中编写的代码:
<?php
$CONFIG = array (
'id' => 'asd5646asdas',
'dbtype' => 'mysql',
'version' => '5.0.12',
);
Run Code Online (Sandbox Code Playgroud)
check.php中编写的获取内容的代码是:
$config_file_path = $_SERVER['DOCUMENT_ROOT'] . 'config.php';
$config = file_get_contents($config_file_path);
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我将输出作为字符串,我想将其转换为数组。为此,我尝试了以下代码。
$config = substr($config, 24, -5); // to remove the php starting tag and other un-neccesary things
$config = str_replace("'","",$config);
$config_array = explode("=>", $config);
Run Code Online (Sandbox Code Playgroud)
使用上面的代码,我得到如下输出:
Array
(
[0] => id
[1] => asd5646asdas,
dbtype
[2] => mysql,
version
[3] => 5.0.12
)
Run Code Online (Sandbox Code Playgroud)
这是不正确的。
有什么办法可以将其转换为数组吗?我已经尝试过 serialize() 以及从 php 中的另一个页面访问数组中提到的内容,但没有成功。
对此的任何帮助将不胜感激。
我试图让数组元素在一个范围内,但没有这样做.在下面解释.
$date_array = array('2012-08-02','2012-08-09','2012-08-16','2012-08-23');
$start_date = '2012-08-01';
$end_date = '2012-08-10';
Run Code Online (Sandbox Code Playgroud)
我想从$ start_date和$ end_date中的$ date_array中获取数组元素.即输出将是:2012-08-02和2012-08-09.
编辑:
该阵列也可以是以下内容.
$date_array = array('2012-08-02','2012-08-10','2012-08-16','2012-08-23');
Run Code Online (Sandbox Code Playgroud)