1

元気ですか ?

私はテキストを持っています:

ビザンチンは、エジプトがイスラム教徒のアラブ人によってイスラム帝国によって侵略され、征服される639-42年まで、7世紀初頭の短いペルシャの侵略の後、国の支配を取り戻すことができました. 彼らがエジプトでビザンチン軍を打ち負かしたとき、アラブ人はスンニ派イスラム教を国にもたらしました。この時期の早い段階で、エジプト人は新しい信仰を先住民族の信念や慣習と融合させ始め、今日まで繁栄しているさまざまなスーフィー教団につながりました.[24] これらの初期の儀式は、コプトキリスト教の時代を生き延びた

このテキストを検索して、カテゴリ、タグを選択したい

<?php // this is some tags in Array , but I don't know which tag is used in this text.
$search_words = array("Egypt , Persian , Islamic , USA , Japan , Spain , Saudi Arabia");

foreach($search_words as $value){
        stristr($longText, $search_words); // I know this is mistake
    }?>

このイージーで使われている単語($search_words)を選択したいです。

私の言語でごめんなさい

4

2 に答える 2

2
$words_found = array();
foreach ($search_words as $word) {
    if (stristr($longText, $word)) {
         $words_found[] = $word;
    }
}

$words_found$search_wordsテキストに存在する配列内のすべてのタグを含む配列になりました。

また、例の配列の構文が正しくありません。次のようにする必要があります。

$search_words = array("Egypt", "Persian", "Islamic", "USA", "Japan", "Spain", "Saudi Arabia");
于 2012-06-03T15:38:19.197 に答える
1

ループを実行せずにこれを行うことができます:

$str = <<< EOF
The Byzantines were able to regain control of the country after a brief Persian
invasion early in the 7th century, until 639-42, when Egypt was invaded and conquered
by the Islamic empire by the Muslim Arabs. When they defeated the Byzantine Armies in
Egypt, the Arabs brought Sunni Islam to the country. Early in this period, Egyptians
began to blend their new faith with indigenous beliefs and practices, leading to 
various Sufi orders that have flourished to this day.[24] These earlier rites had
survived the period of Coptic Christianity in Saudi Arab.
EOF;
$search_words = array("Egypt", "Persian", "Islamic", "USA", "Japan", "Spain",
                      "Saudi Arab");
preg_match_all('/\b[A-Z][a-z\d]*(?:\s+[A-Z][a-z\d]*)?\b/', $str, $arr);
print_r(array_intersect($search_words, $arr[0]));

出力:

Array
(
    [0] => Egypt
    [1] => Persian
    [2] => Islamic
    [6] => Saudi Arab
)
于 2012-06-03T15:48:22.153 に答える