Решение:
strpos
оказался самым эффективным. Может быть сделано с substr
, но это создает временную подстроку. Также может быть выполнено с помощью регулярных выражений, но медленнее, чем strpos, и не всегда дает правильный ответ, если слово содержит метасимволы (см. Комментарий Аймана Хури)
Выбранный ответ:
if(strlen($str) - strlen($key) == strrpos($str,$key))
print "$str ends in $key"; // prints Oh, hi O ends in O
и лучше всего проверить на строгое равенство ===
(см. Ответ Дэвида)
Спасибо всем за помощь.
Я пытаюсь сопоставить слово в строке, чтобы увидеть, встречается ли оно в конце этой строки. Обычный strpos($theString, $theWord);
этого бы не сделал.
В основном, если $theWord = "my word";
$theString = "hello myword"; //match
$theString = "myword hello"; //not match
$theString = "hey myword hello"; //not match
Какой самый эффективный способ сделать это?
P.S. В названии я сказал strpos
, но если есть лучший способ, это тоже нормально.