菜单

CodeIgniter使用phpcms模板引擎,php用户注册ID验证正则表达式

2019年8月5日 - 4166am金沙下载

1.检查用户名是或不是符合规定 两位以上的假名,数字,或然下划线
 

正则表达式长久以来是自己相比较发烧的事物,不过职业中是离不开正则表明式的,代码、vim编辑器、awk等Linux命令都广泛应用正则表达式。那是本身采摘并且测量试验过的PHP代码中常用的正则表明式,首先成立测量检验函数:

CodeIgniter很合乎小站点应用开拓,不过它自带的view功能恐怕会给不懂PHP的前端人士推动麻烦。
相比较之下phpcms的view模板剖析就强比很多了,所以这里就把PHPCMS的沙盘分析作用剥离出去,加到PHPCMS上。
首先在CodeIgniter libraries中 增加 template_cache.php

 代码如下

 代码如下

复制代码 代码如下:

/**
 * 检查用户名是或不是符合规定
 *
 * @param ST瑞鹰ING $username 要反省的用户名
 * @return TRUE or FALSE
 */
function is_username($username)
{
$strlen = strlen($username);
if
(preg\_match(“/^[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]+$/”,
$username))
{
return false;
} elseif (20 < $strlen || $strlen < 2)
{
return false;
}
return true;
}

function regTest( $pattern, $str ) {
    var_dump(
preg_match($pattern, $str)
);
    preg_match_all($pattern,$str,$matches);
    var_dump( $matches );
    var_dump( preg_replace($pattern,$str,’Test’) );
}

<?php if (!defined(‘BASEPATH’)) exit(‘No direct script access
allowed’);
/**
 *  模板解析缓存
 */
final class template_cache {

两位以上的假名,数字,大概下划线^[a-zA-Z0-9_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]+$
 

  1. 格外普通话字符

    public $cache_path;
    public function __construct()
    {
        //$CI =& get_instance();
        $this->cache_path = APPPATH.’views’;
    }

注: 在这里,字母是 a-z,A-Z,以及从 127 到 255(0x7f-0xff)的 ASCII 字符

 代码如下

    /**
     * 编写翻译模板
     *
     * @param $module    模块名称
     * @param $template    模板文件名
     * @param $istag    是还是不是为标签模板
     * @return unknown
     */

2、密码:6—贰十一人,由字母、数字组成

$pattern = “/[x{4e00}-x{9fa5}]/u”;
$str = “飞晏-feiyan”;
regTest( $pattern, $str );
//依次输出结果
//int(1)
//array(1) { [0]=> array(2) { [0]=> string(3) “飞” [1]=>
string(3) “晏” } }
//string(28) “TestTest-feiyan”

    public function template_compile($module, $template, $style =
‘default’) {

 代码如下

有关汉字的同盟,英特网海人民广播广播台湾大学给的都以“[u4e00-u9fa5]”,这一个正则不自然完全正确。

        $tplfile=
APPPATH.’views’.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.’.php’;

function isPWD($value,$minLen=5,$maxLen=16){
$match=’/^[\\~!@#$%^&*()-_=+|{}\[\],.?\/:;\’\”\d\w]{‘.$minLen.’,’.$maxLen.’}$/’;
$v = trim($value);
if(empty($v))
return false;
return preg_match($match,$v);
}

  1. 相配tab缩进、空格和换行

        if (! file_exists ( $tplfile )) {
            show_error($tplfile ,  500 ,  ‘Template does not
exist(1)’);
        }

3、email验证

 代码如下

        $content = @file_get_contents ( $tplfile );

 代码如下

$pattern = “/[x{4e00}-x{9fa5}]/u”;
$str = “飞晏-feiyan”;
regTest( $pattern, $str );
//依次输出结果
//int(1)
//array(1) { [0]=> array(2) { [0]=> string(3) “飞” [1]=>
string(3) “晏” } }
//string(28) “TestTest-feiyan”
//string(21) “HelloTestTest,TestPHP”

        $filepath =
$this->cache_path.DIRECTORY_SEPARATOR.’caches_template’.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR;

function
isEmail($value,$match=’/^[\w\d]+[\w\d-.]*@[\w\d-.]+\.[\w\d]{2,10}$/i’){
$v = trim($value);
if(empty($v))
return false;
return preg_match($match,$v);
}

  1. 匹配Email地址

       
        if(!is_dir($filepath)) {
            mkdir($filepath, 0777, true);
        }
        $compiledtplfile = $filepath.$template.’.php’;
        $content = $this->template_parse($content);
        $strlen = file_put_contents ( $compiledtplfile, $content );
        chmod ( $compiledtplfile, 0777 );
        return $strlen;
    }

留心,把内容中的\替换来小写的\就足以健康使用了,因为本服务器自动过滤\所以本文替换到全角了。

 代码如下

    /**
     * 更新模板缓存
     *
     * @param $tplfile    模板原来的文章件路线
     * @param $compiledtplfile    编写翻译完成后,写入文件名
     * @return $strlen 长度
     */
    public function template_refresh($tplfile, $compiledtplfile) {
        $str = @file_get_contents ($tplfile);
        $str = $this->template_parse ($str);
        $strlen = file_put_contents ($compiledtplfile, $str );
        chmod ($compiledtplfile, 0777);
        return $strlen;
    }
   

$pattern = “[w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*]”;
$str = ‘如至极,请联系service@lenovo.com也许contact@ibm.com。’;
regTest( $pattern, $str );
//依次输出结果
//int(1)
//array(4) { [0]=> array(2) { [0]=> string(18)
“service@lenovo.com” [1]=> string(15) “contact@ibm.com” }
[1]=> array(2) { [0]=> string(0) “” [1]=> string(0) “” }
[2]=> array(2) { [0]=> string(0) “” [1]=> string(0) “” }
[3]=> array(2) { [0]=> string(0) “” [1]=> string(0) “” }
}
//string(41) “如反常,请联系Test或然Test。”

    /**
     * 深入分析模板
     *
     * @param $str    模板内容
     * @return ture
     */
    public function template_parse($str) {
        $str = preg_replace ( “/\{template\s+(.+)\}/”, “<?php
include template(\\1); ?>”, $str );
        $str = preg_replace ( “/\{include\s+(.+)\}/”, “<?php
include \\1; ?>”, $str );
        $str = preg_replace ( “/\{view\s+(.+)\}/”, “<?php
\$this->load->view(\\1); ?>”, $str );
        $str = preg_replace ( “/\{php\s+(.+)\}/”, “<?php
\\1?>”, $str );
        //alex fix
        $str = preg_replace ( “/\{{if\s+(.+?)\}}/”, ““if
\\1“”, $str );
        $str = preg_replace ( “/\{{else\}}/”, ““else“”, $str
);
        $str = preg_replace ( “/\{{\/if\}}/”, ““/if“”, $str
);

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图