簡體   English   中英

搜索字符串以查看它是否包含數組 PHP 中的任何字符串

[英]Search string to see if it contains any string from an array PHP

我正在嘗試檢查字符串是否包含字符串數組中的任何列入黑名單的單詞。 這是我當前的代碼 - 重點是效率,列表中的字符串可能為空,我們搜索的字符串永遠不會為空:

public static function includes_from_array($stringArray, $searchInMe, $offset=0) : bool {
    // if not array just check if $stringArray exists in our $searchInMe string.
    if(!is_array($stringArray)) {
        return strpos($stringArray, $searchInMe) !== false;
    }

    foreach($stringArray as $query) {
        if ($query === '') {
            continue;
        }
        else if(strpos($searchInMe, strtolower($query), $offset) !== false) {
            return true;
        }
    }

    return false;
}

有沒有辦法在不損害效率甚至提高效率的情況下快速縮短代碼? 編寫代碼是因為它目前能夠在需要時檢索 position(從 true 或 false 更改為檢查中返回的 pos),但是在縮短的版本中不需要它。

謝謝!

根據我的理解,您的靈魂目的是檢查句子或 URL 中是否存在任何壞詞,如果存在則返回 Boolean 為真。

請嘗試這樣:

<?php

function includes_from_array($stringArray, $searchInMe){
    if(is_array($stringArray)){
        foreach($stringArray as $arr){
            if(strpos($searchInMe,$arr) !== false){
                return true;
            }
        }
        
    }else{
        if(strpos($searchInMe,$stringArray) !== false){
            return true;
        }
    }
    return false;
}

樣品 Output: https://3v4l.org/3Pefn

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM