目錄
回复内容:
首頁 後端開發 php教程 php 判断字符串是否包含数组中的某个元素

php 判断字符串是否包含数组中的某个元素

Jun 06, 2016 pm 08:22 PM
php

$str="woxiangyao_genghao-de-zifuchuan";
$arr = array('geng','de','cdaefad');
foreach($arr as $v){

1

2

3

4

<code>if(strpos($str, $v) !== false){

    echo $str;

    exit;

}</code>

登入後複製
登入後複製

}
有没有效率更高的写法?

回复内容:

$str="woxiangyao_genghao-de-zifuchuan";
$arr = array('geng','de','cdaefad');
foreach($arr as $v){

1

2

3

4

<code>if(strpos($str, $v) !== false){

    echo $str;

    exit;

}</code>

登入後複製
登入後複製

}
有没有效率更高的写法?

我将问题理解成如何判断内容是否包含敏感词,题主可将敏感词生成成字典树,然后再查找内容是否包含关键词
下面是一个简单的PHP字典树的示例,供参考

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

<code>class TrieTree

{

 

    public $tree = array();

 

    /**

     * 增加关键词到字典树

     *

     * @param string $utf8_str           

     */

    public function add($utf8_str)

    {

        $chars = &amp;UTF8Util::getChars($utf8_str);

        // 串结尾字符

        $chars[] = null;

        $count = count($chars);

        $T = &amp;$this-&gt;tree;

        for ($i = 0; $i _find($chars)) {

            $chars[] = null;

            $count = count($chars);

            $T = &amp;$this-&gt;tree;

            for ($i = 0; $i _find($chars);

    }

 

    private function _find(&amp;$chars)

    {

        $count = count($chars);

        $T = &amp;$this-&gt;tree;

        for ($i = 0; $i tree;

        $count = 0;

        for ($i = 0; $i contain($str)) {

                    return true;

                }

            }

        }

        return false;

    }

 

    /**

     * 导出序列化后的字典树

     *

     * @return string

     */

    public function export()

    {

        return serialize($this-&gt;tree);

    }

 

    /**

     * 导入序列化后的字典树

     *

     * @param string $str           

     */

    public function import($str)

    {

        $this-&gt;tree = unserialize($str);

    }

}

 

class UTF8Util

{

 

    public static function getChars($utf8_str)

    {

        $s = $utf8_str;

        $len = strlen($s);

        if ($len == 0)

            return array();

        $chars = array();

        for ($i = 0; $i &gt; 7) == 0) {

                $chars[] = $c;

            } else

                // 1111 xxxx, first in four char

                if (($n &gt;&gt; 4) == 15) {

                    if ($i &gt; 5) == 7) {

                        if ($i &gt; 6) == 3) {

                            if ($i </code>

登入後複製

如果不考虑语言角度,应该用AC自动机来做比较快

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南 Dec 24, 2024 pm 04:42 PM

適用於 Ubuntu 和 Debian 的 PHP 8.4 安裝和升級指南

CakePHP 日期和時間 CakePHP 日期和時間 Sep 10, 2024 pm 05:27 PM

CakePHP 日期和時間

CakePHP 專案配置 CakePHP 專案配置 Sep 10, 2024 pm 05:25 PM

CakePHP 專案配置

CakePHP 檔案上傳 CakePHP 檔案上傳 Sep 10, 2024 pm 05:27 PM

CakePHP 檔案上傳

CakePHP 路由 CakePHP 路由 Sep 10, 2024 pm 05:25 PM

CakePHP 路由

討論 CakePHP 討論 CakePHP Sep 10, 2024 pm 05:28 PM

討論 CakePHP

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 快速指南

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 如何設定 Visual Studio Code (VS Code) 進行 PHP 開發 Dec 20, 2024 am 11:31 AM

如何設定 Visual Studio Code (VS Code) 進行 PHP 開發

See all articles