使用preg_replace php替换url
嗨,据我所知,preg_replace可用于格式化字符串,但 在这方面我需要帮助 我的url将是这样的使用preg_replace php替换url,php,preg-replace,Php,Preg Replace,嗨,据我所知,preg_replace可用于格式化字符串,但 在这方面我需要帮助 我的url将是这样的 www.example.com/en/index.php 或 我想要的是得到 结果是 www.example.com/index.php 我需要它在php代码中,以便在会话中设置 有人能解释一下如何替换吗?preg\u replace('/www.example.com\/(.+)\/index.php/i',“www.example.com/index.php?lang=$1',$url
www.example.com/en/index.php
或
我想要的是得到
结果是
www.example.com/index.php
我需要它在php代码中,以便在会话中设置
有人能解释一下如何替换吗?
preg\u replace('/www.example.com\/(.+)\/index.php/i',“www.example.com/index.php?lang=$1',$url)
会做这件事preg\u replace('/www.example.com\/(.+)\/index.php/i',“www.example.com/index.php?lang=$1',$url)代码>将完成此操作这是一种方法:-
$newurl = preg_replace('/\/[a-z][a-z]\//', '/', $url);
请注意,搜索字符串显示时带有引号和正斜杠(“/…/”),并且URL中的正斜杠必须转义(\/)。然后将语言代码与“[a-z][a-z]”匹配,但还有其他几种方法可以实现这一点,如果有3个字母代码或大写字母,您可能需要更自由的代码。同样,您可能需要根据可能出现的其他URL方案做一些更严格的操作。这是一种方法:-
$newurl = preg_replace('/\/[a-z][a-z]\//', '/', $url);
请注意,搜索字符串显示时带有引号和正斜杠(“/…/”),并且URL中的正斜杠必须转义(\/)。然后将语言代码与“[a-z][a-z]”匹配,但还有其他几种方法可以实现这一点,如果有3个字母代码或大写字母,您可能需要更自由的代码。同样地,您可能需要根据可能出现的其他URL方案做一些更严格的操作。我怀疑在这种情况下,只需按以下方式使用会更快:
$cleanedData = str_replace(array('www.example.com/en/', 'www.example.com/fr/'), '', $sourceData);
我怀疑在这种情况下,仅使用以下方法会更快:
$cleanedData = str_replace(array('www.example.com/en/', 'www.example.com/fr/'), '', $sourceData);
多亏了Purpletoucan,我终于找到了一种方法
$newurl = preg_replace('/\/(en|esp|fr)\//', '/', $url);
我想它现在起作用了 多亏了Purpletoucan,我终于找到了一种方法
$newurl = preg_replace('/\/(en|esp|fr)\//', '/', $url);
我想它现在起作用了 为什么在那里使用括号?我想OP可能需要捕获的语言代码,所以我添加了捕获括号。当然,我应该更改代码以反映以后如何访问它。对不起,我忘记了分隔符。这是另一个问题,如果我有类似的事情要做什么?www.example.com/en/test1/page.php这不适用于此,因此,基本上您需要的是任何形式的example.com/language/something/something/something/something
转换为example.com/something/something/something
?您可以尝试preg\u replace('/www.example.com\/(.*)\/i',“www.example.com/”,$url)代码>为什么在那里使用括号?我想OP可能需要捕获的语言代码,所以我添加了捕获括号。当然,我应该更改代码以反映以后如何访问它。对不起,我忘记了分隔符。这是另一个问题,如果我有类似的事情要做什么?www.example.com/en/test1/page.php这不适用于此,因此,基本上您需要的是任何形式的example.com/language/something/something/something/something
转换为example.com/something/something/something
?您可以尝试preg\u replace('/www.example.com\/(.*)\/i',“www.example.com/”,$url)代码>抱歉,这里可能是www.example.com/esp/index.phpThanks用于解释+1抱歉,这里也可能是www.example.com/esp/index.phpThanks用于解释+1