PHP仅允许字符串中的特定单词

时间:2018-10-16 07:36:46

标签: php

我该如何区分大小写和不区分大小写? 该字符串一次包含多个单词。

    $allowed = array('hello', 'test');
    if(in_array($data, $allowed)) {
         //Do something
    }
    else {
        //Replace / Return false
    }

3 个答案:

答案 0 :(得分:1)

我可以通过向您展示如何保持单词边界单词,从字符串中删除其他所有内容来部分回答:

<?php

$input  = 'hotdogs are food, not actual HOT dogs.  The latter being dog animals that are hot.';

$words = 
[
    'hot',
    'dog'
];
$regex  = '@\b(' . implode($words, '|') . ')\b@i';
$output = '';
if(preg_match_all($regex, $input, $matches))
    $output = implode($matches[0]);

print $output;

输出:

HOTdoghot

答案 1 :(得分:0)

在比较之前要检查两种情况是否都大写或小写

$allowed = array('hello', 'test');

// Map every array element to be lowercase string
$lowercaseAllowed = array_map('strtolower', $allowed);

// Check if lower case version of data is in accepted lowercase array
if(in_array( strtolower($data), $lowercaseAllowed ) ) {
     //Do something
} else {
    return false;
}

答案 2 :(得分:0)

以问题中的示例为例,并假设$ data是仅包含一个单词的字符串,则只需strtolower($ data)

if(in_array(strtolower($data), $allowed)) {