$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>";
}
如何定义regural表达式来执行\.
序列不被转换为目录分隔符(DS是我的项目中的DIRECTORY_SEPARATOR的快捷方式)?如何正确编写正则表达式?
当你发现自己的PHP已经知道'DIRECTORY_SEPARATOR'。重新定义已经存在的标识符是不好的做法,特别是当唯一的原因是安全字符时。但是,这里应该发生什么?你为什么不用'/',它理解_every_ OS? – KingCrunch 2012-07-27 07:59:14
我知道每个操作系统都支持'''''',但PHP会将文件/目录操作中的斜杠转换为操作系统样式。例如,如果我将使用'''fopen('./foo/bar.php','r');''''PHP解释器会将''''''''转换为''''''在Windows上执行。 – Miraage 2012-07-27 08:02:23