使用preg_replace php替换url

时间:2011-01-19 11:26:01

标签: php preg-replace

大家知道preg_replace可以用来格式化字符串但是 我需要那个相关领域的帮助 我的网址将是这样的

www.example.com/en/index.php

www.example.com/fr/index.php

我想要的是获得

结果为

www.example.com/index.php

我需要在PHP代码中设置,以便在会话中设置

有人可以解释一下吗?

4 个答案:

答案 0 :(得分:2)

preg_replace('/www.example.com\/(.+)\/index.php/i', "www.example.com/index.php?lang=$1", $url);会做的事情

答案 1 :(得分:1)

这是一种方法: -

$newurl = preg_replace('/\/[a-z][a-z]\//', '/', $url);

请注意,搜索字符串会显示引号和正斜杠('/.../'),然后必须转义URL中的正斜杠(\ /)。语言代码然后与'[a-z] [a-z]'匹配,但是还有其他几种方法可以做到这一点,如果有3个字母代码或大写字母,你可能想要更自由的东西。同样,您可能需要做一些更严格的事情,具体取决于可能出现的其他URL方案。

答案 2 :(得分:1)

我怀疑在这种情况下,使用str_replace会更快,如下所示:

$cleanedData = str_replace(array('www.example.com/en/', 'www.example.com/fr/'), '', $sourceData);

答案 3 :(得分:0)

最后,我得到了一个方法,我要感谢Purpletoucan

$newurl = preg_replace('/\/(en|esp|fr)\//', '/', $url);

现在我觉得它正在工作!