- обновление - Хорошо, я сузил это до проверяемых ключевых слов. Ключевые слова будут совпадать только с пробелами между ними, если они жестко запрограммированы в массиве.Если ключевые слова с пробелами, помещенные в массив, являются результатами из базы данных, то preg_match_all завершается ошибкой с 0 найденными результатами.
Так что, если я жестко закодирую массив в php как
$myarray = array("This is my Phrase","This is my Second Phrase");
, а затем сверю его с texttoscan, preg_match_all найдет обе фазы, но если я сделаю это для создания массива:
$result1 = mysql_result($result,$i,"firstphrase");
$result2 = mysql_result($result,$i,"secondphrase");
$myarray = array($result1,$result2);
Приведенный ниже preg_match_all потерпит неудачу и не найдет фразы, но если я заполню массив отдельными словами вместо фраз, он будет работать.Поэтому я предполагаю, что мне нужно подготовить строки, содержащие пробелы, которые возвращаются из базы данных, но я не совсем уверен, как это сделать, или мне нужно переформатировать шаблон регулярного выражения?
foreach ($myarray as $K) {
$pattern = "/\b($K)\b/";
$count = preg_match_all($pattern, $texttoscan, $matches);
if($count > 0){ echo "matched"; }
}