我有这个正则表达式:
'/^files\/(.+\..+)$/';
但我想用运行时变量替换“files/”部分。
我试过这个:
$filePath = "files/";
'/^'.$filePath.'(.+\..+)$/';
这不起作用,还有这个:
$filePath = preg_quote("files/");
'/^'.$filePath.'(.+\..+)$/';
但我仍然在 preg_match 行的这个循环中得到一个错误,说“(”是一个未知的修饰符。
foreach (glob(FILE_PATH."*.*") as $filename) {
preg_match($pattern, $filename, $matches);
echo "<option class='file' value='".$matches[1]."'>".$matches[1]."</option>";
}
任何帮助将不胜感激,谢谢。
编辑
这有效...
$filePath = 'files\/';
...但在实际使用中,我正在尝试使用在另一个文件中声明的常量。
所以:
define('FILE_PATH', 'files/');
...然后尝试使用该常量。它不能嵌入转义字符,因为应用程序的某些其他部分在没有转义字符的情况下需要它。