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 に答える