小编Deb*_*his的帖子

如何使用单独的PHP版本的不同的PHP文件

我有一个站点(基于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"找不到页面"错误.

php .htaccess

8
推荐指数
1
解决办法
6752
查看次数

类Dollar的对象无法转换为int

我正在阅读作者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

需要一些帮助.我怎样才能解决这个问题?

php

7
推荐指数
1
解决办法
2万
查看次数

如何从另一个php页面读取数组

我将下面提到的代码(实际上是配置)写入文件(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 中的另一个页面访问数组中提到的内容,但没有成功。

对此的任何帮助将不胜感激。

php arrays file

2
推荐指数
1
解决办法
2万
查看次数

如何获取范围内的数组元素

我试图让数组元素在一个范围内,但没有这样做.在下面解释.

$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)

php arrays

-1
推荐指数
1
解决办法
325
查看次数

标签 统计

php ×4

arrays ×2

.htaccess ×1

file ×1