将ereg_replace转换为preg_replace的奇迹

时间:2012-08-09 11:58:53

标签: regex preg-replace ereg-replace

我需要将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);

由于

1 个答案:

答案 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);