就在这里。有一件事是,如果该替换表示您的应用程序中的某些内容(例如,从字符串中创建一个 slug: string_slug
),您应该首先将它包装到它自己的函数中,这通过获取输入变量并返回输出非常简单:
function string_slug($string) {
$string = preg_replace('/( +)|([()])|(\/)/', '_', $string);
$string = preg_replace('/_{1,}/', '_', $string);
$string = preg_replace('/_$/', '', $string);
$string = str_replace('ö', 'oe', $string);
$string = str_replace('ü', 'oe', $string);
$string = str_replace('ä', 'oe', $string);
$string = str_replace('Ä', 'Ae', $string);
$string = str_replace('Ü', 'Ue', $string);
$string = str_replace('Ö', 'Oe', $string);
return $string;
}
如您所见,除了将代码移入函数体之外,我还按它们调用的函数对某些行进行了分组。但这只是一个旁注。
这样替换函数的使用就不会那么繁琐且直接:
$string = string_slug($string);
你能想象一种不太完美的方式来进行字符串操作吗?只需一行,该功能就非常适合您想要做的事情。
接下来,您询问了如何改进替换操作。那只是知识,有很多很多方法可以做到这一点。
首先,您可以提高对所使用的两个功能的了解。例如,这可以向您展示如何改进正则表达式以压缩它以及 str_replace 可以与数组一起使用(@Kolnik在这里给出了一个示例,但是操作顺序与您的原始代码不同)。
接下来,该str_replace
部分正在做一些类似于翻译表的事情。用另一个替换一个。PHP 中支持这一点的函数称为strtr
Docs。
还要注意使用正确的编码保存 PHP 文件,否则变音符号替换(Ä
等)可能不适用于您的情况。
此外,您可能想了解称为音译Wikipedia 的内容。