小编Zsu*_*sub的帖子

如果文件名是UTF-8,则使PHP pathinfo()返回正确的文件名

pathinfo()已知为UTF-8的文件名上使用PHP 函数时,除非特殊字符前面有"普通"字符,否则它不会返回正确的值.

示例:
pathinfo('aä.pdf')退货:

Array
(
[dirname] => [the dir]
[basename] => aä.pdf
[extension] => pdf
[filename] => aä
)  
Run Code Online (Sandbox Code Playgroud)

这是好的和花花公子,但pathinfo('äa.pdf')返回:

Array
(
[dirname] => [the dir]
[basename] => a.pdf
[extension] => pdf
[filename] => a
)  
Run Code Online (Sandbox Code Playgroud)

这不是我所期待的.更糟糕的是,pathinfo('ä.pdf')回报:

Array
(
[dirname] => [the dir]
[basename] => .pdf
[extension] => pdf
[filename] => 
)  
Run Code Online (Sandbox Code Playgroud)

为什么这样做?这适用于我测试的所有重音字符.

php utf-8 pathinfo

32
推荐指数
4
解决办法
9677
查看次数

我可以使用@depends依赖于使用@dataProvider的测试吗?

我有一个测试类,其中一个测试通过a @dataProvider和另一个测试@depends在第一个方法上运行多次.然而,当我呼吁var_dump应该传递给第二次测试时,它给了我一个坚实的NULL,我没想到.

换句话说:这应该做什么:

<?php 
class DevicesTest extends PHPUnit_Framework_TestCase
{
    /**
     * @dataProvider registerDataProvider
     */
    public function testRegister($device, $supposedResult)
    {
        //do a bunch of tests
        return array($device, $supposedResult);
    }

    public function registerDataProvider()
    {
        return array(array("foo", "foo"));
    }

    /**
     * @depends testRegister
     */
    public function testSaveDevicePreferences($deviceArr)
    {
        $this->assertNotEmpty($deviceArr);
    }
}
?>
Run Code Online (Sandbox Code Playgroud)

php phpunit unit-testing

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

os x pecl在os x lion上安装apc错误

我尝试在OS X Lion(sudo pecl install apc)上安装带有pecl的APC,它抱怨缺少pcre.h文件:

In file included from /private/tmp/pear/temp/APC/apc.c:44:
/usr/include/php/ext/pcre/php_pcre.h:29:10: fatal error: 'pcre.h' file not found
#include "pcre.h"
Run Code Online (Sandbox Code Playgroud)

所以我使用MacPorts来安装pcre包(sudo port install pcre),但它仍然抱怨.我怎样才能解决这个问题?

php apc pecl osx-lion osx-mavericks

13
推荐指数
2
解决办法
9428
查看次数

PHP按位枚举

我试图根据这个答案做一些像PHP中的按位枚举.但是,当我将所有常量定义为常规ints时,它工作得很好:

final class CountryEnum {
    const CZ = 1;  //Czech Republic
    const DE = 2;  //Germany
    const DK = 4;  //Denmark
    //12 more
    const US = 32768; //USA
}
Run Code Online (Sandbox Code Playgroud)

当我尝试通过位移模式定义值时,它不起作用,即:

final class CountryEnum {
    const CZ = 1;  //Czech Republic
    const DE = 1 << 1;  //Germany
    const DK = 1 << 2;  //Denmark
    //12 more
    const US = 1 << 15; //USA
}
Run Code Online (Sandbox Code Playgroud)

当我尝试运行这个时,PHP会说一个合适的说法

解析错误:解析错误,期望','' or在CountryEnum.php中的';''行[带有const DE的行]

所以我可能错过了一些基本的基本内容,但我很茫然.

php enums

4
推荐指数
1
解决办法
1413
查看次数

标签 统计

php ×4

apc ×1

enums ×1

osx-lion ×1

osx-mavericks ×1

pathinfo ×1

pecl ×1

phpunit ×1

unit-testing ×1

utf-8 ×1