月度归档: 2016 年 1 月

  • WordPress自带html5播放器-视频播放器调用代码图文教程 支持ios

    ios不支持flash,那么用iPhone和ipad访问这些页面的时候怎么办呢,相信很多童鞋都有这个问题

    html5-video_thumb

    解决方法↓↓

    效果如何,这段代码在页面中定义了一个视频,此视频的预览图为poster的属性值,显示浏览器的默认媒体控制栏,预加载视频的元数据,循环播放

    第一选择视频地址为第一个source标签的src属性值,如果你还要兼容IE的话,可以在最后一个source标签后再加上Flash播放器的标签集,或者使用一点 JavaScript代码。

    看下这个HTML5的播放视频调用代码!很简洁,很少,不像老式的那么多的繁琐代码。

    播放器调用代码:

    <video width=’658′ height=’444′ src=’mp4地址’ autoplay=’autoplay’></video>

    同样的给大家解释下HTML5的标签属性及使用

    Video属性:Video标签含有src、poster、preload、autoplay、loop、controls、width、height等几个属性, 以及一个内部使用的标签。Video标签内除了可以包含标签外,还可以包含当指定的视频都不能 播放时,返回的内容。

    Ps:上面放出的是最简洁的,可以按照自己需求添加

    Src属性:Src属性是用来干啥的。跟<img>标签的一样,这个属性用于指定视频的地址。

    Poster属性:用于指定一张图片,在当前视频数据无效时显示(P:预览图)。视频数据无效可能是视频正在加载,也可能是视频地址错误等等。

    Preload标签属性:此属性用于定义视频是否预加载。属性有三个可选择的值:nonemetadataauto。如果不使用此属性,默认为auto

    Auto:为全部预加载。

    None:不进行预加载。使用此属性值。

    Metadata:部分预加载。使用此属性值。

    autoplay标签属性:用于设置视频是否自动播放,是一个布尔属性。当出现时,表示自动播放,去掉是表示不自动播放。

    需要注意的是HTML中布尔属性的值不是truefalse

    正确的用法是,在标签中使用此属性表示true,此时属性要么没有值,要么其值恒等于他的名字

    (此处,自动播放为<video autoplay />或者<video autoplay=”autoplay” />);而在标签中不使用此属性表示false(此处不进行自动播放为<video />)。

    Loop属性:用于指定视频是否循环播放,同样是一个布尔属性

    Controls属性:用于向浏览器指明页面制作者没有使用脚本生成播放控制器,需要浏览器启用本身的播放控制栏。控制栏须包括播放暂停控制,播放进度控制,音量控制等等。每个浏览器默认的播放控制栏在界面上是不一样的。

    Width属性:设置元素的宽度,这是一个通用属性。

    Height属性:设置元素的高度,和Width一样是通用属性。

    Source标签:用于给视频指定多个可选择的(P:浏览器最终只能选一个文件)地址,且只能在媒体标签没有使用src属性时使用。

    浏览器按source标签的顺序检测标签指定的视频是否能够播放(有可能是视频格式不支持,视频不存在等等),如果不能播放,换下一个。此方法多用于兼容不同的浏览器。Source标签本身不代表任何含义,不能单独出现。此标签包含src、type、media三个属性。

    Type属性:说明src属性指定媒体的类型,帮助浏览器在获取媒体前判断是否支持此类别的媒体格式。

    Media属性:用于说明媒体在何种媒介中使用,不设置时默认值为all,表示支持所有媒介。

  • Centos/Linux服务器防火墙/iptables简单设置脚本

    下面提供一个简单的设置脚本,大家可以自行修改~

    #/bin/bash
    sshport=`netstat -lnp|awk -F”[ ]+|[:]” ‘/sshd/{print$5}’`
    iptables -F #清除自带规则
    iptables -X
    iptables -P INPUT DROP #进入本机数据包默认拒绝
    iptables -P OUTPUT ACCEPT #本起外出数据包允许
    iptables -A INPUT -i lo -j ACCEPT #允许本地环回
    iptables -A INPUT -m state –state INVALID -j LOG –log-prefix “INVALID” –log-ip-options
    #记录无效的数据包并丢弃
    iptables -A INPUT -m state –state INVALID -j DROP
    iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
    #允许已建立连接与出相关的数据包进入
    iptables -A INPUT -m state –state NEW -p tcp –dport 80 -j ACCEPT
    #允许目标端口为80的新连接进入
    iptables -A INPUT -m state –state NEW -p tcp –dport $sshdport -j ACCEPT
    #允许目标端口为22的新连接进入
    iptables -A INPUT -p icmp –icmp-type echo-request -m limit –limit 5/s –limit-burst 20 -j ACCEPT
    #允许ping回应,每秒5个,最多20个。
    service iptables save #保存规则

    注意:勿一条条执行,请保存为脚本并运行比如保存为 iptables.sh,避免将自己关外面。

    sh iptables.sh ? ? ? #执行脚本

  • Iptables日记模块LOG使用 记录攻击来源IP

    Iptables匹配相应规则后会触发一个动作,filter和nat表一般常用的有以下目标操作。

    ACCEPT #允许数据包通过
    DROP #丢弃数据包,不对该数据包进一步处理
    REFECT #丢弃数据包,同时发送响应报文
    –reject-with tcp-reset 返回tcp重置
    –reject-with icmp-net-unreachable 返回网络不可达
    –reject-with icmp-host-unreachable? 返回主机不可达
    RETURN #转到其它链处理
    LOG #将数据包信息记录到syslog

    本文就记录下LOG规则的使用,示例:进入的tcp端口为80的数据包记录到日记,错误级别err,描述前缀为INPUT,记录IP/TCP相关信息。

    modprobe ipt_LOG #加载模块
    iptables -A INPUT -p tcp –dport 80 -j LOG –log-level err? –log-prefix “INPUT” –log-ip-options –log-tcp-sequence
    –log-level #错误级别
    –log-prefix “INPUT” #描述前缀
    –log-ip-options #记录IP信息
    –log-tcp-sequence #记录TCP序列号

    然后访问服务器80端口测试,通过dmesg查看记录的信息如下:
    INPUTIN=eth0 OUT= MAC=00:0c:29:73:e0:19:8c:89:a5:65:3a:4a:08:00 SRC=192.168.1.16 DST=192.168.1.2
    LEN=522 TOS=0x00 PREC=0x00 TTL=128 ID=27499 DF PROTO=TCP SPT=5430 DPT=80 SEQ=3847892455 ACK=3435733082 WINDOW=16344 RES=0x00 ACK PSH URGP=0
    还可以修改rsyslog将日志写入到文件。

    vim /etc/rsyslog.conf #添加以下内容
    kern.err?????????? /var/log/iptables.log?#日志文件路径

    /etc/init.d/rsyslog restart #重启rsyslog服务

  • wordpress 不停生成error_log 文件 塞满硬盘 关闭方法 图文教程

    最近帮朋友调试wordpress时,发现空间里不停的生成error_log这样的文件出来,内容大致如下:

    QQ截图20160126154210

    都是插件生成出来的报错内容。

    下面贴出解决方案,打开wp-config.php文件,添加以下内容:

    define( ‘WP_DEBUG’, false );

    // don’t generate log
    define( ‘WP_DEBUG_LOG’, false );

    // don’t display errors
    define( ‘WP_DEBUG_DISPLAY’, false );
    @ini_set( ‘display_errors’, false );

    现在就不会再产生塞满硬盘的文件出来了。

  • 国内免费cdn 免备案 中国联通 网站图片 CSS样式 JAVASCRIPT文件加速 使用方法图文教程

    无意中在网上发现了中国联通出品的免费CDN,可以用来加速视频、图片、css样式、.js文件等。对于我们小站长来说,能够免费缓存一些文件还是不错的。下面写个教程给大家,具体实现加速方法的图文教程:

    403 Forbidden 错误示例:

    比如我要缓存一个我们影视站的,robots.txt,那么我们直接访问的话链接地址就是:http://v.jiloc.com/robots.txt ,

    然后我们使用联通cdn的地址进行测试变成:

    http://120.52.72.19/v.jiloc.com/robots.txt

    那么就会直接出现403 Forbidden。

    可能是因为目录不够深的缘故,那我们再找一个目录长一点,深一点的试试。

    正常缓存示例:

    我们现在缓存一下我们的微信公众号的图片,默认地址为:

    http://v.jiloc.com/wp-content/uploads/weixin.gif

    我们现在使用免费cdn缓存一下,把地址改成:

    http://120.52.72.19/v.jiloc.com/wp-content/uploads/weixin.gif

    QQ截图20160125134605

    这里看到了,可以正常打开,说明工作正常~

    那么这里我们就不再例举了,大家可以举一反三自由发挥。如果想要知道效果的话,大家可以用大一些的文件试试。

    120.52.72.* 整个IP段好像是联通的CDN段,大家低调一些使用吧~

  • linux 下 mysql 忘记root密码 重置root密码

    linux 下 mysql 忘记root密码 重置root密码

    需求场景

    Linux下如果忘记了 MySQL 的 root 密码,需要重新设置

    解决方案

    1. KILL掉系统里的MySQL进程;

    2. 用以下命令启动MySQL,以不检查权限的方式启动;

    mysqld_safe -skip-grant-tables & 

    或是 修改/etc/my.cnf文件,在[mysqld]下添加

    skip-grant-tables

    再启动mysql

    3. 然后用空密码方式使用root用户登录 MySQL;

    mysql -u root

    4. 修改root用户的密码;

    mysql> update mysql.user set password=PASSWORD(’新密码’) where User=’root’
    mysql> flush privileges;
    mysql> quit

    5. 重新启动MySQL,就可以使用新密码登录了。  

  • wordpress 主题中添加特色图片 图文教程

    我们博客最近新换了D8主题,但是后台居然没有设置特色图片的图片,貌似功能不全。下面我们自己动手添加一个特色图片功能。

    打开D8主题下的 admin/d8.php,到最后,大约第391行,添加2行内容,如下:

    add_theme_support( 'post-thumbnails' );
    set_post_thumbnail_size( 220, 150 );

    示例图:
    QQ截图20160121093018

    说明:

    按照比例缩放图片来设置缩略图大小,即生成的缩略图不扭曲。

    set_post_thumbnail_size( 220, 150 ); // 220 像素宽和 150 像素高,按比例缩放模式。

    通过裁剪图片来设置缩略图大小:

    set_post_thumbnail_size( 220, 150, true ); // 220像素宽和 150 像素高,裁剪模式

    保存,上传即可,后台即可看到特色图片了。

    QQ截图20160121093800

    其他主题wordpress添加特色主题方法:

    1、如果是其他主题,上面2行同样是添加到对应主题的functions.php里面。

    2、前台调用时使用,在post模板中:

    <?php
    if ( has_post_thumbnail() ) { // check if the post has a Post Thumbnail assigned to it.
    the_post_thumbnail();
    }
    ?>
    <?php the_content(); ?>

    调用即可。

  • php代码将utf8mb4转换成mysql低版本支持的utf8编码

    最近做开发 发现,有些字符不能存进mysql,后来百度后,得出的结论是,mysql的utf8编码并不是真正完整的utf8,在mysql新版本里选择utf8mb4这才是完整的utf8编码。
    手机上有些图标比如: Emoji表情图标 在mysql里面需要选择utf8mb4才能存储和显示,网上大部分用mysql存Emoji表情相关的解决办法是 把mysql的字符集改为 utf8mb4,但是 最近有个需求就是截取掉对于mysql的utf8mb4的字符集。想了几天,突然想在wordpress看代码,结果 果然找到,分享之。此方案为过滤掉 utf8mb4 的字符

    我这里的mysql本来就不支持utf8mb4的,所以就这样基本上看不到效果….

    方法一:

        $str = '□测试,测试!123□';
        $charset = 'utf8';
        $regex = '/
            (
                (?: [x00-x7F]                  # single-byte sequences   0xxxxxxx
                |   [xC2-xDF][x80-xBF]       # double-byte sequences   110xxxxx 10xxxxxx
                |   xE0[xA0-xBF][x80-xBF]   # triple-byte sequences   1110xxxx 10xxxxxx * 2
                |   [xE1-xEC][x80-xBF]{2}
                |   xED[x80-x9F][x80-xBF]
                |   [xEE-xEF][x80-xBF]{2}';
        if ( 'utf8mb4' === $charset ) {
            $regex .= '
                |    xF0[x90-xBF][x80-xBF]{2} # four-byte sequences   11110xxx 10xxxxxx * 3
                |    [xF1-xF3][x80-xBF]{3}
                |    xF4[x80-x8F][x80-xBF]{2}
            ';
        }
        $regex .= '){1,40}                          # ...one or more times
            )
            | .                                  # anything else
            /x';
        $str1 = preg_replace( $regex, '$1', $str );
        var_dump($str1);

    方法二:

        $str1 = preg_replace('/[x{10000}-x{10FFFF}]/u', '', $str);
        var_dump($str1);
    
  • git 修改代码并提交修改文件到远程服务器教程

    修改文件后,如何提交到git服务器,我们现在给出具体步骤:

    (1)首先需要add,比如.config是被修改的文件,则?git add .config

    (2)然后执行?git commit -m "这里写原因,比如:修改了网站 v.jiloc.com"

    (3)然后push到git服务器,git push

    (4)更新:git pull

    (5)查看log:git log

  • wordpress 获取当前  single.php archive.php 分类url的位置及方法

    wordpress 获取当前 single.php archive.php 分类url的位置及方法

    我们在wordpress自行编写主题时没有现成的方法,现在我们自己弄个方法。

    步骤如下:

    1、在functions.php 里面添加下面2个方法:

    function get_category_root($cat){
        $this_category = get_category($cat);
        while($this_category->category_parent){
            $this_category = get_category($this_category->category_parent);
            return $this_category;
    }
    function get_article_category_ID(){
        $category = get_the_category();
        return $category[0]->cat_ID;
    }

    2、使用时就是:

    <a href="<?php echo esc_url(home_url());?>">首页</a> <?php $jpostion = get_category_root(get_article_category_ID()); echo '<a href="'.esc_url(get_category_link($jpostion->term_id)).'" >'.$jpostion->name.'</a>'?>
WeChat