分类目录归档:js练习存档

mysql数据库导入1115 – Unknown character set: ‘utf8mb4’

在进行phpmyadmin数据库备份恢复的时候,出现 #1115 – Unknown character set: ‘utf8mb4’ 的错误提示。

具体原因一般是高版本的数据库备份文件向低版本的数据库导入, 低版本的数据库中没有utf8mb4字符集,导致出错。

解决方法也很简单,除了升级当前数据库版本之外, 只需要将备份sql文件中的utf8mb4替换成utf8即可,保存后重新导入。

移动端自适应样式之@media的使用方法

移动端自适应样式之@media的使用方法

一款HTML5精美视频播放器插件ckin 内置有三种皮肤

 

在页面中添加如下的HTML5 video 元素:

<video poster=“ckin.jpg” src=“ckin.mp4” data-overlay=“1” data-title=“描述文本”></video>

配置参数

该HTML5视频播放器插件的可用配置参数有:

data-ckin:视频播放器的皮肤。可选值有:default, minimum, compact

data-color:控制按钮的颜色。如:data-color=”#fff000″

data-overlay:为视频播放器添加一个遮罩层。可选值为1和2

poster:设置视频的封面。如:poster=”video-background-image”

一款HTML5精美视频播放器插件ckin-内置有三种皮肤

 

其他视频插件下载

 

http://www.htmleaf.com/html5/yinpinheshipin/

知识产权碰瓷维权可以休矣!

​​知识产权的经为什么总是会念歪?从视觉中国的“碰瓷维权”,到潼关肉夹馍,逍遥镇胡辣汤,青花椒、酒鬼花生等,再到影响几百万网站的DedeCms,为什么都会成为热点事件?关键原因还是某些以利益为目的,而非以保护知识产权为目的,违背基本的社会公德与大众认知,为了牟利无所不用其极的邪恶资本嘴脸!
最为恶劣的是现在越来越多的人想通过此办法,空手套白狼!特别是针对小微企业,个体工商户,自由创业者等经济社会最底层,最困难的经营群体。经济下行压力之下,很多人的基本生存都很困难。很多时候这些群体根本无力运用法律的武器维护自己的合法权益,只能被某些无德的法律流氓敲诈勒索! 不能每次出现类似问题,挑战社会底线,让大家愤恨郁闷,然后部门介入!这样长此以往,大家不仅仅会麻木,也会对社会的基本法制精神产生怀疑!像视觉中国这种上市公司还可以加强监管,市场自我完善修复。但是像dedecms这种小公司却影响巨大的所谓维权,却很难实现自我约束与规范,不是真正以打击侵权而是肆意牟利为目的时候,普通人又如何才能维护自己的合法权益? 知识产权越来越成为经济热题,知识产权应该是创新发展的助推剂,而不是恶意谋利的法律屠刀,这样会严重反噬经济,空耗社会经济工作,影响经济的有效运转,出现更多的不是为了创造财富,而是掠夺财富经济现象!知识产权的价值,是你的创造给大家与社会创造价值,你通过市场手段获得合法收入,得到知识产权的合法保护。而不是挖坑,把大家都埋了,肆意利用现有相关法律的不完善,找到漏洞,频繁恶意诉讼,谋求不应得的暴利!坚决杜绝以维护知识产权之名,行敲诈勒索之实!

最近影响巨大且典型的相关知识产权事件非dedecms莫属!Dedecms织梦作为一家十几年对外宣传免费的CMS系统,却突然间利用所谓的法律维权对用户进行收割。dedecms一直以免费、开源对外宣传,并以此为名接受来自各方面的捐赠,通过十几年的免费噱头,累积了几百万的用户(数据源于网络,dedecms官方曾经认可的用户数,不知道收到通知函的有没有其声称的用户,下方附截图),Dedecms的用户基本都是因其宣传的免费而选用的没有资金小企业主,如果真的这样搞,无异于对小企业网络应用的一次关门屠杀!宣传多年的免费,突然收费,而且其所要求的费用,目前建站圈可以让人惊为天价了!按dedecms官方说法,即使在通知之后,才知道他们的版权主张,停止使用其系统,仍然要给其相关费用!可以想象到收到通知函的小企业主们无奈,恐惧,彷徨表情!可能就因为这么一张“收费单”一样的通知函,严重影响了其生活、工作、经营!真不知道这样的主张是否合法?合情?合理?难道真如网友们说的维权是假谋利是真?不知道dedecms的初心是什么?现在的目的又是什么?希望dedecms不要迷失自我,吃相难看,而最终无法收场!
关注事件的本质,而不再仅仅是事件的表面,从根本上解决此类问题,如果任由别有用心者不断钻法律空子,投机法律,将严重干扰正常的社会秩序。大部分老百姓不可能都完全熟悉法律的条条款款,特别是一些专业性法律,以知识产权相关法律最为明显,短短一年多的时间就热点频出。中国知识产权保护的确有待提高,但同时也是一个循序渐进的过程,只有真正以保护知识产权为目的,对知识产权权利人的合法有效保护,杜绝以牟利为目的恶意起诉,才能营造真正良好有序的知识产权保护环境。


华英雄-正则表达式在线测试备忘录

需要匹配的内容:

<option value=”煤矿”>煤矿
<option value=”化工”>化工
<option value=”石油行业”>石油行业
<option value=”水力”>水力
================================

需要匹配的表达式:<.*?>

煤矿
化工
石油行业
水力

================================

常用的匹配的表达式:

常用正则表达式

一、校验数字的表达式

  • 数字:^[0-9]*$
  • n位的数字:^\d{n}$
  • 至少n位的数字:^\d{n,}$
  • m-n位的数字:^\d{m,n}$
  • 零和非零开头的数字:^(0|[1-9][0-9]*)$
  • 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(\.[0-9]{1,2})?$
  • 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})$
  • 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
  • 有两位小数的正实数:^[0-9]+(\.[0-9]{2})?$
  • 有1~3位小数的正实数:^[0-9]+(\.[0-9]{1,3})?$
  • 非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$
  • 非零的负整数:^\-[1-9][]0-9″*$ 或 ^-[1-9]\d*$
  • 非负整数:^\d+$ 或 ^[1-9]\d*|0$
  • 非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
  • 非负浮点数:^\d+(\.\d+)?$ 或 ^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$
  • 非正浮点数:^((-\d+(\.\d+)?)|(0+(\.0+)?))$ 或 ^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$
  • 正浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ 或 ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
  • 负浮点数:^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ 或 ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
  • 浮点数:^(-?\d+)(\.\d+)?$ 或 ^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$

校验字符的表达式

  • 汉字:^[\u4e00-\u9fa5]{0,}$
  • 英文和数字:^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$
  • 长度为3-20的所有字符:^.{3,20}$
  • 由26个英文字母组成的字符串:^[A-Za-z]+$
  • 由26个大写英文字母组成的字符串:^[A-Z]+$
  • 由26个小写英文字母组成的字符串:^[a-z]+$
  • 由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
  • 由数字、26个英文字母或者下划线组成的字符串:^\w+$ 或 ^\w{3,20}$
  • 中文、英文、数字包括下划线:^[\u4E00-\u9FA5A-Za-z0-9_]+$
  • 中文、英文、数字但不包括下划线等符号:^[\u4E00-\u9FA5A-Za-z0-9]+$ 或 ^[\u4E00-\u9FA5A-Za-z0-9]{2,20}$
  • 可以输入含有^%&’,;=?$\”等字符:[^%&’,;=?$\x22]+
  • 禁止输入含有~的字符:[^~\x22]+

三、特殊需求表达式

  • Email地址:^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
  • 域名:[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
  • InternetURL:[a-zA-z]+://[^\s]* 或 ^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$
  • 手机号码:^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
  • 电话号码(“XXX-XXXXXXX”、”XXXX-XXXXXXXX”、”XXX-XXXXXXX”、”XXX-XXXXXXXX”、”XXXXXXX”和”XXXXXXXX):^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$
  • 国内电话号码(0511-4405222、021-87888822):\d{3}-\d{8}|\d{4}-\d{7}
  • 电话号码正则表达式(支持手机号码,3-4位区号,7-8位直播号码,1-4位分机号): ((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)
  • 身份证号(15位、18位数字),最后一位是校验位,可能为数字或字符X:(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)
  • 帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
  • 密码(以字母开头,长度在6~18之间,只能包含字母、数字和下划线):^[a-zA-Z]\w{5,17}$
  • 强密码(必须包含大小写字母和数字的组合,不能使用特殊字符,长度在 8-10 之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$
  • 强密码(必须包含大小写字母和数字的组合,可以使用特殊字符,长度在8-10之间):^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
  • 日期格式:^\d{4}-\d{1,2}-\d{1,2}
  • 一年的12个月(01~09和1~12):^(0?[1-9]|1[0-2])$
  • 一个月的31天(01~09和1~31):^((0?[1-9])|((1|2)[0-9])|30|31)$
  • 钱的输入格式:
    1. 有四种钱的表示形式我们可以接受:”10000.00″ 和 “10,000.00”, 和没有 “分” 的 “10000” 和 “10,000”:^[1-9][0-9]*$
    2. 这表示任意一个不以0开头的数字,但是,这也意味着一个字符”0″不通过,所以我们采用下面的形式:^(0|[1-9][0-9]*)$
    3. 一个0或者一个不以0开头的数字.我们还可以允许开头有一个负号:^(0|-?[1-9][0-9]*)$
    4. 这表示一个0或者一个可能为负的开头不为0的数字.让用户以0开头好了.把负号的也去掉,因为钱总不能是负的吧。下面我们要加的是说明可能的小数部分:^[0-9]+(.[0-9]+)?$
    5. 必须说明的是,小数点后面至少应该有1位数,所以”10.”是不通过的,但是 “10” 和 “10.2” 是通过的:^[0-9]+(.[0-9]{2})?$
    6. 这样我们规定小数点后面必须有两位,如果你认为太苛刻了,可以这样:^[0-9]+(.[0-9]{1,2})?$
    7. 这样就允许用户只写一位小数.下面我们该考虑数字中的逗号了,我们可以这样:^[0-9]{1,3}(,[0-9]{3})*(.[0-9]{1,2})?$
    8. 1到3个数字,后面跟着任意个 逗号+3个数字,逗号成为可选,而不是必须:^([0-9]+|[0-9]{1,3}(,[0-9]{3})*)(.[0-9]{1,2})?$
    9. 备注:这就是最终结果了,别忘了”+”可以用”*”替代如果你觉得空字符串也可以接受的话(奇怪,为什么?)最后,别忘了在用函数时去掉去掉那个反斜杠,一般的错误都在这里
  • xml文件:^([a-zA-Z]+-?)+[a-zA-Z0-9]+\\.[x|X][m|M][l|L]$
  • 中文字符的正则表达式:[\u4e00-\u9fa5]
  • 双字节字符:[^\x00-\xff] (包括汉字在内,可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1))
  • 空白行的正则表达式:\n\s*\r (可以用来删除空白行)
  • HTML标记的正则表达式:<(\S*?)[^>]*>.*?|<.*? /> ( 首尾空白字符的正则表达式:^\s*|\s*$或(^\s*)|(\s*$) (可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式)
  • 腾讯QQ号:[1-9][0-9]{4,} (腾讯QQ号从10000开始)
  • 中国邮政编码:[1-9]\d{5}(?!\d) (中国邮政编码为6位数字)
  • IPv4地址:((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}

禾匠商城源码后门文件如何清除

目前已知的禾匠商城系统后门文件汇总

禾匠商城源码后门文件如何清除

orms\common\order\CommonOrderRefundList.php 
views\components\app-attr.php 
上面两个文件,如果有,请自己删除! 
\vendor\sebastian\diff\tests\differtesttest.php 『\array_filter()|\exec()』 注释38行-53行代码(不可删除) 
\vendor\sebastian\environment\src\console.php 『\shell_exec()|\proc_open()』 注释91行-106行代码(可删除) 
\vendor\yiisoft\yii2\caching\expressiondependency.php 『已知后门』 直接删除不要考虑 
\vendor\codeception\codeception\src\codeception\lib\framework.php 『可疑文件』 直接删除 调用隐藏未知类 建议删除 
\vendor\codeception\codeception\tests\data\claypit\c3.php 『可疑引用:["phar://__DIR__/codecept.phar/autoload.php"]』 注释70行(可删除) 
\vendor\curl\curl\tests\server\php-curl-test\post_multidimensional.php 『流数据echo』 直接删除不要考虑 
/vendor/codeception/codeception/docs/07-advancedusage.md『执行参数高危险』 385-391行删除 
/vendor/phpspec/prophecy/readme.md『执行参数高危险』 执行高危参数删除 
\vendor\phpunit\phpunit\src\util\php\eval-stdin.php 『eval后门』 直接删除不要考虑 
\vendor\symfony\contracts\httpclient\test\fixtures\web\index.php 『[可疑]file_get_contents 参数 "php://input")』 注释10-13行(可疑参数可删除)

js 替换中文字符串 【 】 等特殊中文符号的方法 replace() (实用)

最近碰到一个js替换(移除)字符串中的中文字符以及特殊的中文字符 “【” 和 “】” 等
搜罗之下没有找到可行的解决办法:经过摸索实测以下方法有效

 

var foo = ‘【你好】,【世界】’;
//想要替换foo中的【】为指定字符串或者空,可以使用unicode的方法
foo= foo.replace(/\u3010/g,””);// \u3010 指的是【的unicode编码
foo= foo.replace(/\u3011/g,””);// \u3011 指的是】的unicode编码

 

关于以上的【】等特殊符号的unicode的编码的转换可以
去unicode编码转换

http://tool.chinaz.com/tools/unicode.aspx

页面进行转换获取

以上代码运行的结果是
你好,世界

某个js启蒙写法

$(document).ready(function() {
// 兼容菜单
$(".head .nav_xl_a").click(function () {
    if ($(".nav_xl_a").hasClass("a1")) {
        $(".nav_xl_a").removeClass("a1");
        $(".nav_xl").css("height","0px");
        $(".nav_xl ul").removeClass("l1");
    } else {
        $(".nav_xl_a").addClass("a1");
        $(".nav_xl").css("height","100vh");
        $(".nav_xl").css("background","black");
        $(".nav_xl ul").addClass("l1");
    }
    return false;
});
$(".head .nav_xl .ceng").click(function () {
    $(".nav_xl").css("height","0%");
    $(".nav_xl_a").removeClass("a1")
    $(".nav_xl ul").removeClass("l1");
    $(".page_nav_xl").removeClass("page_nav_hover").find('ul').stop(true,true).slideUp();
});

// 兼容菜单下拉
$('.page_nav_xl').click(function() {
    if($(this).hasClass("page_nav_hover"))
    {$(this).removeClass("page_nav_hover").find('ul').stop(true,true).slideUp();}
    else
    {$(this).addClass("page_nav_hover").find('ul').stop(true,true).slideDown();}
});

//底部二维码
$('.footer .media .wx').hover(function(){
    $(this).find('.code').stop(true,true).fadeIn();
},function(){
    $(this).find('.code').stop(true,true).fadeOut();
});
});

如何正则表达式的方法获取img标签和图片地址

比如下面的一段html标签中,如何取出img标签和图片地址: 

<div class="good-item"><ul class="clearfix"data-product-list=""><li><a href="/mobile/index/shenruDeatil/id/741"style="position: relative;"><em class="hot-label">热</em><img src="/upload/gallery/thumbnail/4CEDD57F-8D89-3346-129883902F59-tbl.jpg"><div class="good-text"><div class="good-name">1号牛皮纸盒</div><span class="pcolor">¥</span><span class="singlePrice"><!--0.720-->0.72</span><span>/个</span></div></a></li><li><a href="/mobile/index/goodsDeatil/id/257"style="position: relative;"><em class="hot-label">热</em><img src="/upload/gallery/thumbnail/10B4AE18-7B30-7873-D4F03F0842E2-tbl.jpg"><div class="good-text"><div class="good-name">手挽袋</div><span class="pcolor">¥</span><span class="singlePrice"><!--250.00-->250</span><span>/件</span></div></a></li><li><a href="/mobile/index/goodsDeatil/id/249"style="position: relative;"><em class="hot-label">热</em><img src="/upload/gallery/thumbnail/51AAFC9A-188E-2934-937CC221BBF2-tbl.jpg"><div class="good-text"><div class="good-name">4#牛皮纸袋</div><span class="pcolor">¥</span><span class="singlePrice"><!--160.00-->160</span><span>/件</span></div></a></li><li><a href="/mobile/index/goodsDeatil/id/661"style="position: relative;"><em class="hot-label">热</em><img src="/upload/gallery/thumbnail/BEB3E265-347A-5135-789673024100-tbl.jpg"><div class="good-text"><div class="good-name">双童艺术吸管</div><span class="pcolor">¥</span><span class="singlePrice"><!--100.00-->100</span><span>/件</span></div></a></li></ul></div>

我们采用正则表达式的方法获取img标签和图片地址:

  1. 1.获取img标签的正则写法:/<img(.*?)>/
  2. 2.获取图片src属性的正则,以”<img”开始,中间考虑到空格、单引号、双引号等,最后结果为:/<img.+src=\”?(.+\.(jpg|jpeg|gif|bmp|bnp|png))\”?.+>/i

PHP代码如下:

preg_match_all('/<img(.*?)>/', $html, $match); //$html = <<<HTML 上面的html文本 >>>;$images = $match[0];foreach ($images as $key=>$val){    preg_match('/<img.+src=\s*[\"|\']?(.+\.(jpg|jpeg|gif|bmp|bnp|png))[\"|\']?.+>/i', $val, $res);    $arr[$key]['img_tag'] = $val;    $arr[$key]['img_path'] = $res[1];}var_dump(arr);

打印结果如下:

array(4) {    [0]=>    array(2) {    ["img_tag"]=> string(77) "<img src="/upload/gallery/thumbnail/4CEDD57F-8D89-3346-129883902F59-tbl.jpg">"    ["img_path"]=> string(65) "/upload/gallery/thumbnail/4CEDD57F-8D89-3346-129883902F59-tbl.jpg"    }    [1]=>    array(2) {    ["img_tag"]=> string(77) "<img src="/upload/gallery/thumbnail/10B4AE18-7B30-7873-D4F03F0842E2-tbl.jpg">"    ["img_path"]=> string(65) "/upload/gallery/thumbnail/10B4AE18-7B30-7873-D4F03F0842E2-tbl.jpg"    }    [2]=>    array(2) {    ["img_tag"]=> string(77) "<img src="/upload/gallery/thumbnail/51AAFC9A-188E-2934-937CC221BBF2-tbl.jpg">"    ["img_path"]=> string(65) "/upload/gallery/thumbnail/51AAFC9A-188E-2934-937CC221BBF2-tbl.jpg"    }    [3]=>    array(2) {    ["img_tag"]=> string(77) "<img src="/upload/gallery/thumbnail/BEB3E265-347A-5135-789673024100-tbl.jpg">"    ["img_path"]=> string(65) "/upload/gallery/thumbnail/BEB3E265-347A-5135-789673024100-tbl.jpg"    }    }

图片地址不是实际路径,仅供参考。

正则表达式批量替换路径(vscode)

正则表达式批量替换路径(vscode)

由于项目文件目录整改,需要将文件中所有的引用路径进行更改,比较快捷的方法便是使用 vscode 的正则匹配进行批量查找、替换。

原本文件路径为 ../../assets/图片名.png

现在想改为 ../../assets/img/图片名.png

查找的正则表达式:..\/assets\/(.*).png

替换的表达式:../assets/img/$1.png

可能存在的问题,vscode 会提示开启开启 PCRE2 搜索引擎,在设置中开启即可。