PHP替换为2个选项

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。在

我尝试删除/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。在这两种情况下如何删除? 我试过了,当然,它不起作用:

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)