我需要将4个ereg_replace表达式转换为preg_replace。 我一直在尝试基于教程的各种组合,并没有让我的网站工作得太远。
有些灵魂可以协助我解决这些问题吗?
$path = ereg_replace('\.[\.]+', '', $path); // remove any '..' (jumping up a directory)
$path = ereg_replace('/[/]+', '/', $path);
$back_url = ereg_replace('dir=[^\&]*', "dir=$back_directory", $this->current_url);
$dir_url = ereg_replace('dir=[^\&]*', "dir=$dirpath", $this->current_url);
由于
答案 0 :(得分:0)
为了将ereg转换为preg,你必须用分隔符包围你的正则表达式
最常见的是/
但您可以使用除空格之外的任何字符
您还必须注意在正则表达式中没有选择的分隔符,在这种情况下,您必须转义这些字符或使用其他分隔符。
举例:
ereg_replace('\.[\.]+', '', $path);
变为
preg_replace('/\.[.]+/', '', $path);
或
preg_replace('/\.{2,}/', '', path);
和
ereg_replace('/[/]+', '/', $path);
变为
preg_replace('/\/[\/]+/', '/', $path);
或
preg_replace('~/[/]+~', '/', $path);
或
preg_replace(':/{2,}:', '/', $path);