PHP替换为2个选项
我尝试删除/en。它运行良好:PHP替换为2个选项,php,Php,我尝试删除/en。它运行良好: $url = "myDomain/en/firstFolder/secondFolder/file.php"; echo str_replace("/en","",$url); 我的问题出现在:/en或/fr。我的意思是$url可能是: “myDomain/en/firstFolder/secondFolder/file.php”; “myDomain/fr/firstFolder/secondFolder/file.php” 我不知道我是否有/en或/fr。在
$url = "myDomain/en/firstFolder/secondFolder/file.php";
echo str_replace("/en","",$url);
我的问题出现在:/en或/fr。我的意思是$url可能是:
“myDomain/en/firstFolder/secondFolder/file.php”;
“myDomain/fr/firstFolder/secondFolder/file.php”
我不知道我是否有/en或/fr。在这两种情况下如何删除?
我试过了,当然,它不起作用:
echo str_replace("/en|/fr","",$url);
能够接受数组作为前两个参数,例如(来自文档):
搜索
正在搜索的值,也称为指针。 数组可用于指定多个针 您可以使用:
echo str_replace( array('/en', '/fr'), '', $url );
能够接受数组作为前两个参数,例如(来自文档):
搜索
正在搜索的值,也称为指针。 数组可用于指定多个针 您可以使用:
echo str_replace( array('/en', '/fr'), '', $url );
str\u replace用于替换字符串,如果要使用模式,请使用preg\u replace
$url = "myDomain/fr/firstFolder/secondFolder/file.php";
echo preg_replace('/\/en|\/fr/','',$url);
str_replace用于替换字符串,若要使用模式,则使用preg_replace
$url = "myDomain/fr/firstFolder/secondFolder/file.php";
echo preg_replace('/\/en|\/fr/','',$url);
若您不想制作替换数组,请使用正则表达式:
echo preg_replace('#/(en|fr|es|ru|mm)#', '', $url);
…您可能需要执行以下操作,以确保不会意外修剪过多:
echo preg_replace('#/(en|fr|es|ru|mm|fi)/#', '/', $url);
假设您的语言是芬兰语(“/fi”)——您还可以有效地去掉“/firstFolder”的开头,除非您将/fi/与前导斜杠和尾随斜杠匹配,并将其替换为单个斜杠。如果你不介意列举所有的语言,你也可以简单地
echo preg_replace('#myDomain/[a-z]{2}/#', 'myDomain/', $url);
…这似乎是最安全、最优雅的方法。如果您不想麻烦创建替换数组,请使用正则表达式:
echo preg_replace('#/(en|fr|es|ru|mm)#', '', $url);
…您可能需要执行以下操作,以确保不会意外修剪过多:
echo preg_replace('#/(en|fr|es|ru|mm|fi)/#', '/', $url);
假设您的语言是芬兰语(“/fi”)——您还可以有效地去掉“/firstFolder”的开头,除非您将/fi/与前导斜杠和尾随斜杠匹配,并将其替换为单个斜杠。如果你不介意列举所有的语言,你也可以简单地
echo preg_replace('#myDomain/[a-z]{2}/#', 'myDomain/', $url);
…这似乎是最安全、最优雅的方法。str_替换(数组('/fr','/en'),'',$url)代码>str_替换(数组('/fr','/en'),'',$url)代码>