xml地图|网站地图|网站标签 [设为首页] [加入收藏]

正规赌博平台

当前位置:网上十大正规赌博平台 > 正规赌博平台 > foreach循环中使用引用时问题,中调试Twig模板中的

foreach循环中使用引用时问题,中调试Twig模板中的

来源:http://www.nb-machinery.com 作者:网上十大正规赌博平台 时间:2019-08-07 22:11

常言:工欲善其事,必先利其器。Drupal 主题开发中技巧也不少,学会这些技巧会起到事半功倍的效果。今天给大家推介的是如何调试打印出Twig模板中的变量,不妨一看!Oops,Drupal 8!

只要用户可以发言的地方,就可能出现广告或者其他敏感词,因此必须加入敏感词过滤机制来保持站点的”纯洁”。

 代码如下

在drupal 8 twig模板中,你可以在注释中找到大部分、常用的模板变量。但是,当一些模块或者主题引入新变量的时候,该怎么办呢?

过滤机制:加入php关键字正则匹配

<?php
$array=array('a','b','c','d');
foreach($array as $key=>$val){
    //do something
}
echo $val;//输出d
echo $kay;//输出3
$val='e';
print_r($array);//输出Array ( [0] => a [1] => b [2] => c [3] => d )
?>

Twig模板提供了一个函数——‘dump’,方便你去发现、检查这些变量。

//$str 为用户数据
function WordFilter($str)
{
       /*
    获取敏感词列表
    敏感词的存储方法:
    1:存储在txt文件中(一般的方法)
    2:存储在缓存(比较好的方法)
    我是存储在memcachd中。
    */
    $words = getSensitiveWords();

在foreach循环中,当循环结束后,$key和$val变量都不会自动释放掉。值会被保留下来。

使用‘dump’函数有个小前提,你需要启用twig的debug模式。关于如何启用twig的debug模式

    foreach ($words as $word)
    {
        $preg_letter = '/^[A-Za-z] $/';
        if (preg_match($preg_letter, $str))
        {//匹配中文
        $str = strtolower($str);
        $pattern_1 = '/([^A-Za-z] ' . $word . '[^A-Za-z] )|([^A-Za-z] ' . $word . 's )|(s ' . $word . '[^A-Za-z] )|(^' . $word . '[^A-Za-z] )|([^A-Za-z] ' . $word.'$)/';
        //敏感词两边不为空
        if (preg_match($pattern_1, $str))
        {
            $flag = TRUE;
        }
        $pattern_2 = '/(^' . $word . 's )|(s ' . $word . 's )|(s ' . $word . '$)|(^' . $word . '$)/';
        //敏感词两边可以为空格
        if (preg_match($pattern_2, $str))
        {
            $flag = TRUE;
        }
        }
        else
        {//匹配英文字符串,大小写不敏感
        $pattern = '/s*' . $word . 's*/';
        if (preg_match($pattern, $str))
        {
            $flag = TRUE;
        }
        }
    }
}
存在问题:

当foreach使用引用的情况下,会出现如下的情况,需要注意。

检查单个变量

如果单纯只加入关键字匹配,用户反过滤的方法五花八门,包括中间加入空格或者其他标点符号。
例子:
敏感词:扣扣

 代码如下

{{ dump(title) }}

用户处理后:
扣 扣
扣,扣
扣@扣
扣1扣
这时候代码的正则匹配就可能匹配不出来。

本文由网上十大正规赌博平台发布于正规赌博平台,转载请注明出处:foreach循环中使用引用时问题,中调试Twig模板中的

关键词: bbin电子游戏