この目的のためdictionary
に、次のような形式を作成できます(たとえば):
sauna, stoombad|Sauna
fitnessruimte|Fitnessroom
air-conditioning, airconditioning|Air Conditioning
wifi, wlan, internet, adsl, internettoegang|Internet
open haard|Open fire
tv|Television
sat, sat-tv|Satelite
afwasmachine|Vaatwasser
magnetron, combimagnetron|Microwave
oven, mini-oven|Oven
kluis|Safe
koelkast, koel-/vriescombinatie|Frige
koffiemachine|Coffemachine
diepvriezer|Freezer
あなたが読むべきよりもfile
、それarray
はexplode
例えば:values
main word
foreach ($dictionary as $key => $value) {
list($values, $option) = explode('|', $value);
$values = explode(',', $values);
$dictionary[$key] = array('option' => trim($option), 'values' => $values);
}
そして、次の方法を使用して、目的の効果を取得します(各アイテムに個別の関数を使用して適用し、同じことを行うこともできますarray_walk()
)。
foreach ($dictionary[$key]['values'] as $index => $value)
$itemValues[$index] = '\b'.str_replace(array('/'), array('\/'), trim($value)).'\b'; // adding word boundary to each element and escaping slashes for regexp
また、読み取り値の配列を使用しRegExp pattern
て、特定の単語セットを検索するためのを構成します。
$pattern = '/'.implode('|', $itemValues).'/i'; // composing RegExpr pattern with case-insensitive option
これを使用すると、任意のテキストを作成pattern
できます。preg_match
テキストに単語が存在する場合、たとえばair-conditioning
またはairconditioning
、preg_match
が返され、(辞書 の後にある単語)がテキストで使用可能であるtrue
ことがわかります。あなたはあなたのテキストに対して各アイテムのためにそのようなことをしているので、あなたはあなたがリストした単語を集めることができます。Air Conditioning
|
preg_match
dictionary
単語のセットの使用を省略し、行ごとの単語を使用して、より詳細なテキストをテストできます(単語ごとに)。
この手法は、一連の単語(またはさまざまなバリエーションや言語の1つの単語)の存在についてテキストを抽出またはテストし、それらを一般化された単語または意味にリンクするために使用するのに非常に適しています。