[英]strange php regex notice
我正在嘗試編寫一個函數,用於將錯誤的文件名轉換為正確的文件名。 我嘗試使用正則表達式完成此操作,它運行良好,但每次嘗試更正名稱時都會發出通知。 這是我的代碼:
private function clean_filename($filename) {
$reserved = preg_quote('\/:*?"<>|', '/');
$filename = preg_replace("/([\\x00-\\x20\\x7f-\\xff" .$reserved . "])/e", "_", $filename);
return $filename;
}
通知是:
注意:在C:\\ Documents and Settings \\ A dministrator \\ Desktop \\ script \\ script.php(89)中使用未定義的常量_ - 假定為'_':第1行的regexp代碼
可能是問題? 提前致謝!!
使用e
強制將評估作為PHP表達式。 所以你必須使用:
$filename = preg_replace("/([\\x00-\\x20\\x7f-\\xff" .$reserved . "])/e",
"'_'", $filename); //or "\"_\""; or '"_"' etc.
更好的是丟棄e
標志而不是你不需要它(你的替換表達式是固定的;它總是一個下划線字符)。
$filename = preg_replace("/([\\x00-\\x20\\x7f-\\xff" .$reserved . "])/",
"_", $filename);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.