作者: Mr.Li

  • 使用宝塔面板一键部署Z-BlogPHP

    使用宝塔面板一键部署Z-BlogPHP

    使用阿里云、腾讯云,或是各种VPS/服务器的用户,现在可以通过宝塔面板实现一键部署Z-BlogPHP了。

    很高兴地告诉各位用户,我们与宝塔面板达成了合作。宝塔面板的一键部署源码模块已经集成了Z-BlogPHP博客程序,通过其来部署高效而又安全。

     

    什么是宝塔面板?

    宝塔面板是一款使用方便、功能强大、交互友好且终身免费的服务器管理软件,支持Linux与Windows系统。集成一键配置:LAMP/LNMP、网站、数据库、FTP、SSL,一键部署源码,通过Web端轻松管理服务器。

    官网地址:https://www.bt.cn

    安装宝塔面板请查看:https://www.bt.cn/bbs/thread-1186-1-1.html

     

    怎么部署?

    安装成功宝塔面板后,点击“软件管理” -> “宝塔一键部署源码”,在弹出的对话框中找到“Z-Blog”,按下“一键部署”。输入域名,提交即可。

     

  • 移动端浏览器禁止出现横向滚动条

     页面样式中添加以下样式,即可禁止出现横向滚动条

    源代码

    html,body{

    overflow:hidden;

    overflow-y:auto;

    }

     

  • Python之if嵌套

    如何用if嵌套描述考试成绩评价规则:
    
    1. 如果成绩大于等于60分,就是及格,在此前提下:
    (1)如果成绩大于等于80分,属于优秀范围;
    (2)否则,属于一般范围。
    
    2. 如果成绩小于60分,就是不及格,在此前提下:
    (1)如果成绩小于30分,平时太不认真,属于学渣了;
    (2)如果成绩大于等于30分,那么,至少还能抢救一下。

    像这种如果底下还有如果条件里还套条件的情况,我们如何用Python把上面的规则写出来,并得出评价呢?

    答案就是——嵌套条件

    if嵌套的应用场景,简单来讲就是:在基础条件满足的情况下,再在基础条件底下增加额外的条件判断。

    源代码

    historyscore=26

    if historyscore>=60:
        print('你已经及格')

        if historyscore>=80:
            print('你很优秀')

        else:
            print('你只是一般般')

    else:
        print('不及格')

        if historyscore<30:
            print('学渣')

        else:
            print('还能抢救一下')

    print('程序结束')

    执行逻辑

  • Python之冒号和缩进

    在开发中你可能注意到了一个细节:在条件判断代码中的冒号:后、下一行内容的前面,会空几个格,但这是为什么呢?

    首先,在计算机的沟通语言中,空格的学名叫缩进,比如我们写文章都要空两个格,这就叫首行缩进

    对于Python而言,冒号和缩进是一种语法。它会帮助Python区分代码之间的层次,理解条件执行的逻辑及先后顺序。【注:缩进是四个空格或一个Tab键】

    并且,在if条件语言中,缩进不需要我们手动按空格键。当你用英文输入法打:后按回车,我们的开发工具(用来编写Python代码的程序)为了方便大家编程,会自动实现下一行代码,向右缩进的功能。

    此时,被缩进的内容(print()函数)和if条件语句组成了一个代码块(一个整体),成为了if条件下的内部命令

    这意味着:如果赋值满足if条件,计算机就会准确执行if条件内部的命令(即缩进的代码块)。

    那么下面,请你阅读下面这个代码,看看运行结果是什么。

     

    # 赋值语句:为宝石数量赋值
    stonenumber=6
    
    # 条件:如果你拥有的宝石数量大于等于6个
    if stonenumber>=6:
    
    # 结果:显示‘你拥有了毁灭宇宙的力量’的结果
    print('你拥有了毁灭宇宙的力量')
    

     

    是不是会出现IndentationError: expected an indented block(缩进错误:期望一个缩进块)的报错?

    这是因为,当我们去掉缩进时,if条件和print命令成为了两个不同的代码组,属于平行关系。你看:if条件下面,缺少了可以执行的动作。我们想一下:无论条件成不成立,都不会执行什么操作,这个条件的存在没有任何意义。

     

     

  • Python条件判断

    比方说,我想让天猫精灵在感知到我开门的一瞬间,打开客厅的灯。如果我只说:天猫精灵,打开灯。那么,由于缺少开门的前提条件,无论你开不开门,灯都会打开着。

    所以,我们下的命令应该是这样:天猫精灵,如果我开门,你打开客厅的灯。

    而这个下命令的如果…就…逻辑,就是与计算机沟通的逻辑——条件判断,其作用就是明确地让计算机知道:在什么条件下,该去做什么。

    条件判断

    在Python宇宙,条件判断语句总共有三种表现形式,我们先从最简单的单向判断:if开始说起

    单向判断:if

    # 为宝石数量赋值
    stonenumber=6
    
    # 条件:如果你拥有的宝石数量大于等于6个
    if stonenumber>=6:
        
        # 结果:显示‘你拥有了毁灭宇宙的力量’的结果
        print('你拥有了毁灭宇宙的力量')   

    双向判断:if…else…

    # 赋值语句:为宝石数量赋值
    stonenumber=3
    
    # 条件:如果你拥有的宝石数量大于等于6个
    if stonenumber>=6:
        
        # 结果:显示‘你拥有了毁灭宇宙的力量’的结果
        print('你拥有了毁灭宇宙的力量')
        
    # 条件:当赋值不满足if条件时,执行else下的命令
    else:
        
        # 结果:显示‘去找灵魂宝石’的结果
        print('带着卡魔拉去沃弥尔星寻找灵魂宝石')

    多向判断:if…elif…else…

    # 为宝石数量赋值
    stonenumber=5
    
    # 条件:如果你拥有的宝石数量大于等于6个
    if stonenumber>=6:
        
        # 结果:显示‘就拥有了毁灭宇宙的力量’的结果
        print('你拥有了毁灭宇宙的力量')
        
    # 条件:如果想让宝石数量停留在5个以下,至少一个
    elif 0<stonenumber<=5:
    
        # 条件:当赋值不满足if和elif条件时,执行else下的命令,宝石数量在3个以下
        print('红女巫需要亲手毁掉幻视额头上的心灵宝石')
    
    else:
    
        # 结果:显示‘需要惊奇队长逆转未来’的结果
        print('需要惊奇队长逆转未来')
        

    总结:

    执行逻辑:

  • php提取html中的img标签

    1、提取所有img标签

    <?php $html = <<<EEE
    如何把html里面的img标签整个提取出来,如<img src="images/1.jpg" />,<img src="images/2.jpg" />我这边整个都要,不知道要怎么写
    EEE;
    preg_match_all('/<img\s+src=".*?"\s+\/>/', $html, $matches);
    var_dump($matches);
    array(1) {
      [0]=>
      array(2) {
        [0]=>    string(26) "<img src="images/1.jpg" />"
        [1]=>    string(26) "<img src="images/2.jpg" />"
      }
    }

    2、提取html图片(img)src地址与任意属性的方法

    <?php 
    /*PHP正则提取图片img标记中的任意属性*/
    $str = '<center><img src="/uploads/images/2017020716154162.jpg" height="120" width="120"><br />PHP正则提取或更改图片img标记中的任意属性</center>';   
    //1、取整个图片代码 
    preg_match('/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i',$str,$match); 
    echo $match[0];   
    
    //2、取width 
    preg_match('/<img.+(width=\"?\d*\"?).+>/i',$str,$match); 
    echo $match[1];   
    
    //3、取height 
    preg_match('/<img.+(height=\"?\d*\"?).+>/i',$str,$match); 
    echo $match[1];   
    
    //4、取src 
    preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$str,$match); 
    echo $match[1];   
    
    /*PHP正则替换图片img标记中的任意属性*/
    
    //1、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/2017020716154162.jpg") 
    print preg_replace('/(<img.+src=\"?.+)(images\/)(.+\.(jpg|gif|bmp|bnp|png)\"?.+>)/i',"\${1}uc/images/\${3}",$str); 
    echo "<hr/>";   
    
    //2、将src="/uploads/images/20100516000.jpg"替换为src="/uploads/uc/images/2017020716154162.jpg",并省去宽和高 
    print preg_replace('/(<img).+(src=\"?.+)images\/(.+\.(jpg|gif|bmp|bnp|png)\"?).+>/i',"\${1} \${2}uc/images/\${3}>",$str); 
    
    ?>

  • 宝塔面板部署项目和添加网站

    1、登录宝塔工具,输入账户和密码登录

    2、安装环境及防护工具,根据自己项目运行环境安装

    3、上传项目.zip,解压项目

    4、添加数据库

    5、添加网站,配置网站(以域名管理、网站根目录、伪静态为例)

    (1)域名管理

    (2)网站根目录

    (3)伪静态

    6、端口设置

    至此,在宝塔管理工具中部署项目和添加网站就完成了。

     

     

  • Python之数据转换

    负责转换数据类型的函数一共有3种:str() int()float()

    下面,我们先来学习一下str()函数,它拥有镜像世界的『隐分身术』,可让其他类型的数据分身成str类型。

    • str()函数

    str()函数能将数据转换成其字符串类型,不管这个数据是中文、数字、标点还是火星文,只要放到括号里。这个数据就能摇身一变,成为字符串类型。

    #例如,将整型number转换为字符串型
    number = 3
    str(number)
    • int()函数

    将数据转换为整数类型的方法也很简单,就是int()函数。其使用方法同str()一样,将你需要转换的内容放在括号里就行,像这样:int(转换的内容)。

    不过对于int()函数的使用,大家要注意一点:只有符合整数规范的字符串类数据,才能被int()强制转换。

    别看它虽然只有一句话,但它其实带有三层含义:首先,整数形式的字符串比如’6’和’1’,可以被int()函数强制转换。

    其次,文字形式,比如中文、火星文或者标点符号,不可以被int()函数强制转换。

    最后,小数形式的字符串,由于Python的语法规则,也不能使用int()函数强制转换。

    比方说下列代码,如果点击运行,程序会报错【ValueError:invalid literal for int() with base 10: ‘3.8’】(值异常:浮点类型字符串无法使用int()强制转换)。

    print(int('3.8'))
    
    # 运行后显示结果:ValueError:invalid literal for int() with base 10: '3.8'

    虽然浮点形式的字符串,不能使用int()函数。但浮点数是可以被int()函数强制转换的。

    如将浮点数3.8强制转换整型的语句。但是,为什么输出的结果是3呢?

    int()函数的本质是将数据转换为整数。所以对于浮点数,int()函数会做取整处理。但是,同我们平时对小数四舍五入的处理方法不同,int()函数会直接抹零,直接输出整数部分。

    如果遇到这种情况:字符串就是小数形式,比如’3.8’这种。我不想让它变为整数3,想让它保持小数形式的3.8,那我要怎么做呢?

    • float()函数

    首先float()函数的使用,也是将需要转换的数据放在括号里,像这样:float(数据)。

    其次,float()函数也可以将整数和字符串转换为浮点类型。但同时,如果括号里面的数据是字符串类型,那这个数据一定得是数字形式。

    下面,我们通过一张图小结一下这三个函数。

  • Python之数据的应用

    现在,你已经认识了字符串整数浮点数,掌握了它们的初级使用,下面我们来学以致用一下。

    • 四则运算

    Python里的整数、浮点数和数学意义的整数、小数是一样的,它最重要的作用是与运算符号结合,进行数学计算。接下来我们看一下Python如何利用整数,浮点数进行四则运算。

    首先,我们来看看Python世界的运算符。

    不过,对于这么多的算术运算符,我建议你先看一遍,有个大致的印象就行。你可以先把这张图保存上,等用的时候再找出来,对应着查阅就可以。

    咱们再说说一样的——运算优先级:Python世界的运算优先级,和我们平时的计算优先级是一样的。

    • 字符串的拼接

    比方说,我有以下几个零碎的『词语』——变量,然后想合成这样一句话:我是风变编程学员007,在镜像世界里进行身份验证,你要怎么做呢?


    字符串拼接的方法可简单了,就是利用字符串拼接符号【+】,将需要拼接的变量连在一起就行了。

    hero = '我'
    organization = '风变编程'
    identity = '学员'
    action = '是'
    ID = '007'
    
    print(hero+action+organization+identity+ID)

    • 数据类型的查询——type()函数

    那么,这个type()函数要怎么使用呢?答案就是:只需把查询的内容放在括号里就行。

  • Python之有意思的【0.55+0.3】

    浮点数可能让你有点眩晕,这是因为,与【整数运算结果永远精确】的特点不同,计算机里浮点数的运算是不精确的,会有四舍五入的误差。这什么意思呢?

    下面,请你先心算一道题【0.55+0.3】

    然后我们再让Python算一下:

    image.png

    哎?为什么不是【0.85】,而尾巴多了一个【1】呢?这是因为,Python计算浮点数时,会先把0.550.3转化成二进制数【注:二进制数由0和1表示,逢二进一】,如下:

    # 进制转换
    0.55(十进制) = 0.1000110011001100110011001100110011001100110011001101(二进制)
    0.3(十进制) = 0.0100110011001100110011001100110011001100110011001101(二进制)

    而在这个转化过程中存在误差,这样,就造成了我们与程序计算结果的差异。

    所以,这俩二进制数通过二进制法则运算后,再通过复杂的计算公式,将二进制结果转成十进制小数。