检查句子是否包含PHP中的单词

时间:2012-09-20 11:22:44

标签: php

如何检查句子是否包含单词。我明确地使用了名称句子和单词而不是字符串和子字符串。例如: 判刑

$s = "Ala makota, a kot ma przesrane";

调用函数

checkIfContains("kota",$s) 

返回false。

但是

checkIfContains("makota",$s) 

返回true。

4 个答案:

答案 0 :(得分:4)

如果您只想匹配完整单词,则需要使用正则表达式来完成此操作。请尝试以下方法:

<?php
function checkIfContains( $needle, $haystack ) {
    return preg_match( '#\b' . preg_quote( $needle, '#' ) . '\b#i', $haystack ) !== 0;
}

答案 1 :(得分:1)

$string = "Ala makota, a kot ma przesrane";

checkIfInString("makota", $string);

function checkIfInString($needle, $haystack) {
    $delimiters = ' ,.';
    return in_array($needle, explode($haystack, $delimiters);
}

答案 2 :(得分:0)

您可以尝试:

function checkIfContains($needle, $haystack) {
    // Remove punctuation marks
    $haystack = preg_replace('/[^a-zA-Z 0-9]+/', '', $haystack);
    // Explode sentence with space
    $haystack = explode(' ', $haystack);
    // Check if $needle exist
    return in_array($needle, $haystack);
}

答案 3 :(得分:0)

你可以试试:

if(strpos($s,"kota") !== false){
       echo true;
}

或:

function checkIfContains($string, $letter){
       return strpos($string, $letter) !== false;
}