はいあります。1つは、その置換がアプリケーション内の何かを表す場合(たとえば、文字列からスラッグを作成する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);
文字列操作を行うための完璧ではない方法を想像できますか?たった一行で、あなたがやりたいことにぴったりの機能です。
その次に、交換作業を改善する方法について質問しました。それは単なる知識であり、それを行うには多くの方法があります。
まず、使用する2つの関数に関する知識を向上させることができます。これにより、たとえば、正規表現を改良して凝縮する方法や、str_replaceが配列で機能する方法を示すことができます(@Kolnikが例を示していますが、操作の順序は元のコードとは異なります)。
その隣で、そのstr_replace
部分は変換テーブルのようなものを実行しています。一方を他方と交換します。これをサポートするPHPの関数は、strtr
ドキュメントと呼ばれます。
また、PHPファイルを正しいエンコーディングで保存するように注意してください。そうしないと、umlaut置換(Ä
など)が機能しない場合があります。
また、音訳ウィキペディアと呼ばれるものについて学びたいと思うかもしれません。