1
$data = array(
    'core.*',
    'handlers.player.profile',
    'vendor.dummy\.test'
);

$re = '/(?!<\\\\)\./';

foreach ($data as $path) {
    $path = __DIR__ . DS . preg_replace($re, DS, $path) . '.php';
    echo "$path <BR>";
}

我应该如何定义正则表达式来执行\.不转换为目录分隔符的序列(DS 是我项目中 DIRECTORY_SEPARATOR 的快捷方式)?

4

1 回答 1

0

更新,根据评论:

php > var_dump(preg_replace('/(?<=[^\\\\])\./', DIRECTORY_SEPARATOR, 'vendor.dummy\.test'));
string(18) "vendor/dummy\.test"
于 2012-07-27T08:06:41.510 回答