mysq常用函数大全

很少用到,但是有时候又必须用到,这里收集一下mysql的常用函数
一、数学函数
ABS(x)   返回x的绝对值

BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制)

CEILING(x)   返回大于x的最小整数值

EXP(x)   返回值e(自然对数的底)的x次方

FLOOR(x)   返回小于x的最大整数值

GREATEST(x1,x2,...,xn)返回集合中最大的值

LEAST(x1,x2,...,xn)      返回集合中最小的值

LN(x)                    返回x的自然对数

(更多…)

你可能还喜欢下面这些文章

Shell中的条件判断语句if的用法

shell中的if语法是最让我头疼的语法之一,它的判断就向使用USB插头一样——拿起来插入不行,翻转再插入还不行,再翻转插入行了!为了搞清楚这部分语言,我收集了一些文章关于if条件判断的用法,希望对你也有些帮助。一、基本语法语法说明bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令。当有多个嵌套时,只有第一个返回0退出状态的命令会导致符合该条件执行的语句部分被执行,如果所有的语句的执行状态都不为0,则执行else中语句。返回状态:最后一个命令的退出状态,或者当没有条件是真的话为0。注意:1、表

php print 这个坑,遇到连接符从右往左执行

在使用php的时候,我很少用到print这个函数,哦,不对,这是一个语言结构,而并非日函数!看一段代码

C++实现python字符串的endswith方法

可以使用的或方法配合比较运算符来模拟方法的功能。下面是一个示例函数,它检查一个字符串是否以另一个字符串结束:在这个示例中,函数接受两个参数:和。函数首先检查的长度是否大于或等于的长度。如果不是,那么显然不能以结束,函数返回。否则,函数使用方法从的末尾提取与长度相同的子字符串,并将其与进行比较。如果它们相等,那么以结束,函数返回。否则,函数返回。请注意,这个函数是区分大小写的。如果你想要一个不区分大小写的版本,你可以在比较之前使用和函数将和转换为小写。在这个版本中,函数首先使用和函数将和转换为小写。然后,它调用函数来检查转换后的字符串是否以结束。

Go入门:六、常用标准库

这是我的Go学习的第六篇笔记,也是Go入门的最后一篇笔记。在大多数语言中,了解了变量和数据类型,流程控制,函数,面向对象,再加上标准库,就可以用这门语言去写一些项目了。首先让我想想,在工作中通常会用语言频繁处理什么问题或者处理什么数据?最常见的应该是各种字符串操作,日期和时间,读写文件、socket等IO相关的操作!字符串处理 — StringsString提供了一组处理字符串的操作,常用的有:判断一个字符串是否在另一个字符串中分割字符串为[]string和组合[]string为一个字符串字符串替换...太多了,就不一一列举了,这里列出一些常用的字符串操作。字符串判断字符串分割与合并字符串转换

C++字符串拼接

在C++中,字符串拼接可以使用多种方法,下面是一些常用的方法:使用 运算符C++中的 类型支持 运算符来进行字符串拼接。使用 成员函数 类提供了 成员函数,它可以用来拼接字符串。使用 运算符 也支持 运算符来进行字符串拼接。使用 C 风格的字符串拼接虽然不推荐使用C风格的字符串拼接(因为它可能会导致缓冲区溢出),但你还是可以在C++中这样做。在这种情况下,你需要确保目标缓冲区有足够的空间来存储拼接后的字符串。在这个例子中, 函数被用来拼接两个C风格的字符串。注意,在使用 之前,我们检查了 是否有足够的空间来存储拼接后的字符串,以防止缓冲区溢出。使用 对于更复杂的字符串拼接,特

Go语言的 make 和 new

new 和 make 是两个内置函数,主要用来创建并分配类型的内存。在我们定义变量的时候,可能会觉得有点迷惑,不知道应该使用哪个函数来声明变量,其实他们的规则很简单,new 只分配内存,make 只能用于 slice、map 和 channel 的初始化。下面我们就来具体介绍一下new在Go语言中,new 函数描述如下:从上面的代码可以看出,new 函数只接受一个参数,这个参数是一个类型,并且返回一个指向该类型内存地址的指针。同时 new 函数会把分配的内存置为零,也就是类型的零值。【示例】使用 new 函数为变量分配内存空间。当然,new 函数不仅仅能够为系统默认的数据类型,分配空间,自定义

C++ 判断 char* 是否相等

在C++中, 是一个指向字符的指针,通常用于表示C风格的字符串。判断两个  指针是否相等,需考虑两个方面:判断指针本身的地址是否相等:可以通过直接使用  或  操作符来实现。 和  指向不同的地址(尽管它们的内容相同),而  和  指向相同的地址。2. 判断指针指向的字符串内容是否相等:需要使用  函数,它是C标准库中的一部分,在C++中可用。 函数用于比较 、 和  的内容。如果内容相同, 返回

C++入门:三、函数

这是我学习C++的第三篇笔记,函数。我的学习路径是现在学习的是函数的声明、定义、调用等相关知识。函数声明和定义函数的声明包含返回类型,函数名字,0个或者多个形参,无函数体,通常在头文件中对函数进行声明。函数的定义包含返回类型,函数名字,0个或多个形参,以及函数体。比如写一个求阶乘的函数,可以写成下面这样写一些简单的函数大多数语言都差不多,不过可惜每种语言或多或少都有自己的特色,这是比较令人头秃的地方。函数的参数函数可以带有0或多个参数,每个参数都需要声明类型。参数传递可以传值和传引用。如果形参是引用类型,那么它将绑定到对应的实参中,我们成为传引用。否则,将会把实参的值拷贝后赋值给形参,我们成为

python学习笔记:三、函数

这是第三篇python学习笔记,我们即将要学习python的函数。内容主要包括两个部分,函数的声明和函数的调用。函数声明和调用比如我们要声明一个“吃”的函数,语法如下:def eat(): return "eat something"print(eat())上面是一个没有参数的函数,做的事情很简单,声明一个函数,然后返回一个字符串。接下来要增加一个参数了。def ead(food): return "eat %s" % foodprint(eat('fruit'))可以看到,上面声明了一个带有一个参数的函数,当然可以声明带两个,三个等。这些都是固定的,那么如果要声明一个不固定参数的

bash教程:一、变量,函数,控制流程

变量的定义和使用变量的定义bash变量定义很简单。如下:a="hello"左边是变量名,右边是变量值。bash是弱类型,因此不需要给a加上类型。注意,等号两边不能有空格 比如 a = "hello",这是错误的。变量使用变量使用需要在定义的变量名之前加上$,比如我们打印之前定义的aecho $a特殊变量后面再说,现在仅仅是最基础的,能够让自己写出一个完整的脚本就行。流程控制流程控制则是编写程序必备的过程,比如顺序,循环,条件,分支等等。在其他类C语言中有if...else,for,while,do...while,switch,那么在bash里面,这些应该怎么写呢。if...else结构a=0

vsftpd配置文件详解

vsftpd的配置文件

/etc/vsftpd/vsftpd.conf 主配置文件
/usr/sbin/vsftpd Vsftpd的主程序
/etc/rc.d/init.d/vsftpd 启动脚本
/etc/pam.d/vsftpd PAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)
/etc/vsftpd/ftpusers 禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对系统造成损坏。(注意:linux-4中此文件在/etc/目录下)
/etc/vsftpd/user_list 禁 止或允许使用vsftpd的用户列表文件。这个文件中指定的用户缺省情况(即在/etc/vsftpd /vsftpd.conf中设置userlist_deny=YES)下也不能访问FTP服务器,在设置了userlist_deny=NO时,仅允许 user_list中指定的用户访问FTP服务器。(注意:linux-4中此文件在/etc/目录下)
/var/ftp 匿名用户主目录;本地用户主目录为:/home/用户主目录,即登录后进入自己家目录
/var/ftp/pub 匿名用户的下载目录,此目录需赋权根chmod 1777 pub(1为特殊权限,使上载后无法删除)
/etc/logrotate.d/vsftpd.log Vsftpd的日志文件

(更多…)

你可能还喜欢下面这些文章

使用crontab+rsync备份你的站点

这是一篇记录站点备份的文章,通常站点需要每隔一周,甚至更短的时间进行备份,然而手工备份再下载下来这实在是麻烦,于是利用crontab和rsync进行站点备份,再利用我本地的树莓派定时拉取备份结果,想想还是挺完美的。编写备份的shell站点文件备份很简单,直接将站点打包压缩即可,但是想了想还是不把站点路径定义死,而是使用一个参数将站点路径传递进去,这样就能写一个通用的文件备份#! /bin/bashsrc='';dest='';while getopts 's:d:' OPTdo case $OPT in s) src=$OPTARG;; d) dest=$OPTARG;; esacdonei

linux shell 入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shel

使用sublime+platuml高效画图

程序员难免要经常画流程图,状态图,时序图等。以前经常用 visio 画,经常为矩形画多大,摆放在哪等问题费脑筋。有时候修改文字后,为了较好的显示效果不得不再去修改图形。今天介绍的工具是如何使用 Sublime + PlantUML 的插件画流程图,状态图,时序图等。这是一种程序员看了就会爱上的画图方式:自然,高效。什么是 PlantUMLPlantUML 是一个画图脚本语言,用它可以快速地画出:时序图流程图用例图状态图组件图简单地讲,我们使用 visio 画图时需要一个一个图去画,但使用 PlantUML 只需要用文字表达出图的内容,然后就可以直接生成图片。看一个最简单的例子:软件安装这些软件

gcc/g++编译参数详解

编译步骤gcc 与 g++ 分别是 gnu 的 c & c++ 编译器。gcc/g++ 在执行编译工作的时候,总共需要4步:预处理,生成 .i 的文件将预处理后的文件转换成汇编语言, 生成文件 .s 有汇编变为目标代码(机器代码)生成 .o 的文件连接目标代码, 生成可执行程序 参数详解-x language filename参数含义为指定文件所使用的语言。根据约定,C语言的后缀名称为".c",而 C++ 的后缀名为".cpp"或".cc",但如果你的源代码后缀不约定的那几种,那么需要使用-x参数来指定文件所使用的语言。这个参数对他后面的文件名都起作用。 可以使用的参数吗有下面的这些:

ftp命令大全详解

来熟悉熟悉ftp命令,对于服务器之间的文件传输太有用啦,不会怎么能行呢!先来看看基础的命令,包括了连接,列出列表,下载,上传,断开这最基础的命令,会这些,在使用ftp命令行就毫无压力啦!1. 连接ftp服务器格式:ftp a)在linux命令行下输入:b)服务器询问你用户名和密码,分别输入用户名和相应密码,待认证通过即可。2.列出文件列表以及切换目录这部分其实和linux并无区别,分别是ls,和cd列出目录列表切换当前目录3. 下载文件下载文件通常用get和mget这两条命令。a) get格式:get 将文件从远端主机中传送至本地主机中。如要获取远程服务器上/usr/your/1.htm,则

iterm2 使用 rz、sz 的方法

如果没有额外的设置,iterm2 使用 rzsz 的时候会卡在这个时候就需要使用iterm2提供的trigger来实现rzsz的功能。第一步:本机安装rzsz使用rzsz之前本地也需要安装如果没有安装brew,请先安装brew,mac必备的包管理器!第二步:创建发送和接收脚本发送文件的脚本如下,可以复制下面的内容,保存在 /usr/local/bin/iterm2-send-zmodem.sh中。接收文件的脚本如下,同样可以复制保存在/usr/local/bin/iterm2-recv-zmodem.sh第三步:设置Triggerteigger需要设置两个,一个实发送文件的trigger,一个

Go入门:六、常用标准库

这是我的Go学习的第六篇笔记,也是Go入门的最后一篇笔记。在大多数语言中,了解了变量和数据类型,流程控制,函数,面向对象,再加上标准库,就可以用这门语言去写一些项目了。首先让我想想,在工作中通常会用语言频繁处理什么问题或者处理什么数据?最常见的应该是各种字符串操作,日期和时间,读写文件、socket等IO相关的操作!字符串处理 — StringsString提供了一组处理字符串的操作,常用的有:判断一个字符串是否在另一个字符串中分割字符串为[]string和组合[]string为一个字符串字符串替换...太多了,就不一一列举了,这里列出一些常用的字符串操作。字符串判断字符串分割与合并字符串转换

linux awk命令分析你的文本或日志,awk命令用法

简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您

布隆过滤器(bloom filter)介绍以及php和redis实现布隆过滤器实现方法

引言在介绍布隆过滤器之前我们首先引入几个场景。场景一在一个高并发的计数系统中,如果一个key没有计数,此时我们应该返回0。但是访问的key不存在,相当于每次访问缓存都不起作用了。那么如何避免频繁访问数量为0的key而导致的缓存被击穿?有人说, 将这个key的值置为0存入缓存不就行了吗?这是确实是一种解决方案。当访问一个不存在的key的时候,设置一个带有过期时间的标志,然后放入缓存。不过这样做的缺点也很明显:浪费内存和无法抵御随机key攻击。场景二在一个黑名单系统中,我们需要设置很多黑名单内容。比如一个邮件系统,我们需要设置黑名单用户,当判断垃圾邮件的时候,要怎么去做。比如爬虫系统,我们要记录下

查看varnish统计信息命令:varnishstat

varnishstat是一个查看当前varnish实例的实时运行状态信息。命令以及参数如下:varnishstat 以下选项可用: -1不再显示不断更新的显示,而是将统计信息打印到stdout。-f <glob>Field inclusion glob. Use backslash to escape characters. If the argument starts with '^' it is used as an exclusion glob. Multiple -f arguments may be given, and they will be ap

wordpress后台编辑器添加按钮

增强wordpress编辑器是必要的,因为有的只是一些基础的按钮,比如我想要使用pre标签的按钮就没有

function tt_add_quicktags() {
?>

<script type="text/javascript">
    QTags.addButton( 'pre', 'pre', '<pre>\n','\n</pre>' );
    </script>
<?php
}
add_action('admin_print_footer_scripts', 'tt_add_quicktags' );

上面的代码仅仅是添加了quicktags的快捷按钮,也就是后台编辑器切换到文本时候的按钮,在可视化里面并没有,这写文章不太爽还得来回切换。下面代码吧按钮加在可视化里面 (更多…)

你可能还喜欢下面这些文章

php开发者的sublime插件和配置

作为一个php开发者,换工作环境的时候可能会重新配置编辑器,这里给出一个比较好的环境(也是我的常用环境)。配置篇每家公司都会有内部的规范,但是只要公司不是特别奇葩,那么规范一般是大同小异。根据规范来设定编辑器,那么写出来的代码则很容易符合规范了。此外,一个设置好的编辑器能够大大提高编码效率!下面是我的配置,可以根据注释自行调整{ // 粗体文本 "bold_folder_labels": true, // 显示所有的空白字符,这样可以看出空格和tab "draw_white_space": "all", // 设置字体 "font_size": 15,

sublime优秀插件推荐

最佳的Sublime Text 插件朋友们你们好!我尝试着收集了最佳的ST插件,这些插件真的会改善你的工作流程。我搜索了很多网站,下面是我的成果。WebInspector在 JavaScript调试方面,这是一个令人惊讶的工具,Sublime上的完整的代码检查工具。功能:使用绝对路径储存在用户设置中的项目断点,控制台,分步和断点调试器,栈追踪。这些都能够很棒的工作!而且Mozilla还提供了一个插件Fireplay让你连接到Firefox 开发工具和最简单的调试器JSHintEmmet编辑器中最流行的插件之一。Emmet,前身Zen Coding也是web开发者提高生产力最有效的方法之一。按下

sublime merge和diff的插件sublimemerge pro

一直使用的是beyond compare这个软件来作为比对和合并工具,不可否认,在用git的时候,配置这款工具比对确实很省事。现在我在用sublime写代码,在写的过程中可能涉及到和以前的代码版本做比对,这个时候还要打开这个软件那可不是我想要干的,插件众多的sublime我想这个比对插件肯定是有的吧,于是就找到了sublimemerge pro这款插件。直接 ctrl + alt + p 输入install package...,搜索sublimemerge,安装即可。如果对安装方法不清楚可以查看sublime安装插件的教程。安装之后会有一个readme,里面介绍了用法,如下  In file

sublime安装package control,让插件安装更简单

package control是什么东东?sublime要如何安装package control呢?且往下看。package control就是sublime的插件管理中心,你可以通过这个东西来安装,更新或者卸载插件。插件能够增强sublime的功能,这个就不废话了安装package control1.使用快捷键 Ctrl+` (这个就是键盘Esc下面的那个), 打开sublime的控制台(这个控制台可以输入并且执行python代码)sublime text3sublime text2手动安装可能由于各种原因,无法使用代码安装,那可以通过以下步骤手动安装Package Control: 点击

序言:我的sublime

多年以前有朋友推荐我用sublime,那大概是2011年的时候吧,我用tango notpad2,曾觉得这是用的最舒服的编辑器,高亮,秒开,太舒服。当我无意中看到好多人在用sublime的时候,我好奇的试一试,这一试,就是几年了,或许我以后也将会一直用下去。开始,相当长的一段时间内仅仅将sublime当做一个编辑器用,我想的是看的舒服,打开快,界面够酷就可以了,而且我用的也确实很舒服。但后来,我觉得要是sublime能够直接f5来运行程序是多方便啊,实际上,这对于sublime就是小case,sublime灵活的配置,快捷键你想怎么定义就怎么定义,只要机器上面安装了编译器或者各种语言的解释器就

centos7系统初初始化工作以及网站环境搭建(php7+nginx+mysql)

拿到一台做网站的主机, 我们先要做一些环境初始化的工作, 由于这些工作会有些繁琐,因此记录一下. 后面将这些流程写成一个shell脚本,一次性完成.此次工作流程如下: 安全性设置 额外的目录创建 网站环境搭建安全性设置一般从某云上买的主机, 默认账户是root, 为了不被暴力破解, 我们首先需要设置一个强一点的密码,不过更好的方法是禁用root, 另外创建一个用户来作为日常管理的账户.第一步: 创建一个新的账户,并且能够切换到root权限比如我的用户名叫xiaobai, 添加用户名就是useradd xiaobai设置密码passwd xiaobai之后输入密码,一个新的账户就设定好了.

让sublime支持c/c++语言的编译

sublime只是一个编辑器,让sublime支持c或者c++则是通过设定sublime快捷键调用相关的命令,达到编辑和执行c代码的目的。首先需要下载一个c语言的编译器,对于 Windows 和 Linux 来说可以采用 gcc 。For Windows:下载安装MinGW,然后在系统环境变量中添加(假设你把 MinGW安装在 C 盘),你安装到哪个路径就写哪个路径,别傻乎乎的直接复制啦,不然没用哦。验证一下是否成功。win+r(win就是徽标),输入cmd,打开cmd窗口之后输入gcc -v看看,如果有gcc的信息说明成功了,如果显示gcc不是内部或外部命令,也不是可运行的程序那就是环境变量

linux下面ftp的搭建

linux下面ftp服务器一般选择vsftpd这个免费开源的ftp程序。主要说一下其安装,配置,启动这些过程。 由于我的是centos系统,只需要使用就可以安装啦 ubuntu用安装完毕之后。首先在linux下面添加一个用户作为ftp用户 useradd –d /var/www/site -g ftp –s /sbin/nologin myftp -s /sbin/nologin 是让其不能登陆系统 -d 是指定用户目录为/var/www ,这里可以替换成任何你需要的目录。 -g ftp 把用户加入到ftp组中(vsftp已创建) myftp是ftp用户名,在配置时把这个myftp换成你的ft

蜘蛛痕迹统计插件,spideranalyse

 做成了独立插件啦,不集成到主题啦,所有主题都能用啦插件github地址:https://github.com/cmhc/spideranalyse/update2015-10-19插件已经提交到wordpress官方,虽然小,也算是一个小小的尝试吧。玩wordpress好多年,还从来没干过,一直都是自娱自乐,有时候还赚点零花钱,说来惭愧。插件地址: https://wordpress.org/plugins/spideranalyse/只有当你的网站被蜘蛛爬行,才会记录日志,因此开始会没有数据的,慢慢等待吧。在使用插件过程中可能会遇到的问题问题收集中。。。 

强化twenty fifteen主题,twenty fifteen pro主题制作过程

被最新的twenty fifteen主题迷上了,这就是我心目中的样式!但有功能还是需要添加的,因此在twenty fifteen的主题基础上,增加了一些功能,命名为twenty fifteen pro主题,目前我所用的主题就是twenty fifteen pro主题。目前增加的功能有这些1.专辑文章将一些文章整个成专辑,比如之前胡超的sublime这个专辑,随便点进去一篇文章,左侧栏都会出现该专辑的系列文章,并且在后台还可以手动控制其排序。这样的好处就是能够将同类别,教程之类的文章聚合起来,更加利于阅读。2.页脚文字增加统计或者版权文字,备案号等等一些附加的信息可能是需要的,但很遗憾twent

linux下面ftp的搭建

linux下面ftp服务器一般选择vsftpd这个免费开源的ftp程序。主要说一下其安装,配置,启动这些过程。 由于我的是centos系统,只需要使用

yum install vsftpd

就可以安装啦 ubuntu用

apt-get install vsftpd

安装完毕之后。首先在linux下面添加一个用户作为ftp用户 useradd –d /var/www/site -g ftp –s /sbin/nologin myftp (更多…)

你可能还喜欢下面这些文章

centos7系统初初始化工作以及网站环境搭建(php7+nginx+mysql)

拿到一台做网站的主机, 我们先要做一些环境初始化的工作, 由于这些工作会有些繁琐,因此记录一下. 后面将这些流程写成一个shell脚本,一次性完成.此次工作流程如下: 安全性设置 额外的目录创建 网站环境搭建安全性设置一般从某云上买的主机, 默认账户是root, 为了不被暴力破解, 我们首先需要设置一个强一点的密码,不过更好的方法是禁用root, 另外创建一个用户来作为日常管理的账户.第一步: 创建一个新的账户,并且能够切换到root权限比如我的用户名叫xiaobai, 添加用户名就是useradd xiaobai设置密码passwd xiaobai之后输入密码,一个新的账户就设定好了.

wordpress后台增加菜单

添加WordPress顶级管理菜单其实也是一件非常简单的事情,使用两个WordPress内置函数就可以解决问题,分别是和。1.在后台添加一级菜单add_menu_page添加菜单,但是需要是用add_action挂到admin_menu的挂钩上去。代码如下add_action( 'admin_menu', 'register_my_custom_menu_page' );function register_my_custom_menu_page() { add_menu_page( 'custom menu title', 'custom menu', 'manage_options',

iterm2 使用 rz、sz 的方法

如果没有额外的设置,iterm2 使用 rzsz 的时候会卡在这个时候就需要使用iterm2提供的trigger来实现rzsz的功能。第一步:本机安装rzsz使用rzsz之前本地也需要安装如果没有安装brew,请先安装brew,mac必备的包管理器!第二步:创建发送和接收脚本发送文件的脚本如下,可以复制下面的内容,保存在 /usr/local/bin/iterm2-send-zmodem.sh中。接收文件的脚本如下,同样可以复制保存在/usr/local/bin/iterm2-recv-zmodem.sh第三步:设置Triggerteigger需要设置两个,一个实发送文件的trigger,一个

memcacheq的安装与使用

1、安装libevent官网:http://www.libevent.org/2、安装 BerkeleyDB官网:http://www.oracle.com/technetwork/products/berkeleydb/downloads/index.html(下载需要登录)安装:安装完成之后:或者:添加:并执行:3、安装 MemcacheQ官网:http://memcachedb.org/memcacheq/测试是否安装成功:4、启动服务建立相关目录:启动服务:参数说明:-d : 以后台服务方式运行-l : 设置监听地址及端口(默认是22201)-A : 数据页大小-H : 数据保存目录-

vsftpd配置文件详解

vsftpd的配置文件/etc/vsftpd/vsftpd.conf主配置文件/usr/sbin/vsftpdVsftpd的主程序/etc/rc.d/init.d/vsftpd启动脚本/etc/pam.d/vsftpdPAM认证文件(此文件中file=/etc/vsftpd/ftpusers字段,指明阻止访问的用户来自/etc/vsftpd/ftpusers文件中的用户)/etc/vsftpd/ftpusers禁止使用vsftpd的用户列表文件。记录不允许访问FTP服务器的用户名单,管理员可以把一些对系统安全有威胁的用户账号记录在此文件中,以免用户从FTP登录后获得大于上传下载操作的权利,而对

开始使用varnish

本文假设你已经安装了varnish了,如果还没安装,那么请看前面的varnish的安装来安装varnish吧!下面的命令将会启动varnishservice varnish start现在你的varnish已经运行了,让我们确保它已经在工作吧!打开浏览器,在地址栏中输入http://127.0.0.1:6081/(你需要把ip替换成你的机器ip)默认的配置将会尝试将请求转发到该台机器上的8080端口上面。如果该台机器上面没有web服务,varnish将会返回Error 503 Service Unavailable。你的web应用可能运行在其他端口或者其他的机器,这需要编辑varnish的配置

网易邮箱密码被泄露事件,又一个网络安全事故

今天上午看到有人说163邮箱数据库被泄露,于是查一下,结果吓一跳。起因:乌云平台路人甲报这个漏洞最开始是乌云漏洞平台暴露出来的,于是去看了下,截图如下虽然说是某邮箱,但是看下面的评论就知道这是163邮箱了。过亿的数据库泄露,事故不小。乌云方面指出,前不久,有网友抱怨称自己的iCloud帐号被黑,绑定的iPhone手机被锁敲诈等,其共同点是都采用了网易邮箱作为iCloud帐号。网友需要注意的是,使用网易邮箱绑定淘宝、支付宝、苹果iCloud和QQ等帐号用户,需要马上解除绑定关系。据了解,在18日就有大量网易邮箱遭全面暴力破解的相关新闻放出。大量网友称绑定帐号遭泄露。其中受影响比较严重的是iPho

使用crontab+rsync备份你的站点

这是一篇记录站点备份的文章,通常站点需要每隔一周,甚至更短的时间进行备份,然而手工备份再下载下来这实在是麻烦,于是利用crontab和rsync进行站点备份,再利用我本地的树莓派定时拉取备份结果,想想还是挺完美的。编写备份的shell站点文件备份很简单,直接将站点打包压缩即可,但是想了想还是不把站点路径定义死,而是使用一个参数将站点路径传递进去,这样就能写一个通用的文件备份#! /bin/bashsrc='';dest='';while getopts 's:d:' OPTdo case $OPT in s) src=$OPTARG;; d) dest=$OPTARG;; esacdonei

autossh实现树莓派内网穿透

在我写的另一片文章《使用ssh建立反向连接》实现了内网穿透,但连接在长时间不使用时会自动断开。 现在有一个更好的解决方案,使用autossh来实现一个不会断开的反向链接,实现内网穿透。如何使用首先在树莓派上安装autossh,命令是:安装完毕后,启动autossh,可以使用如下命令:参数解释:参数“-M 5678”中,-M指定树莓派的监控端口,此处是5678。树莓派会定时检查该端口,如果不通则会重新发起连接。命令“1234:localhost:22”中, 1234表示需要在远程主机上开启的端口,22表示本地的ssh端口。这个含义表示我们希望通过公网ip和1234端口访问树莓派的22端

sublime安装package control,让插件安装更简单

package control是什么东东?sublime要如何安装package control呢?且往下看。package control就是sublime的插件管理中心,你可以通过这个东西来安装,更新或者卸载插件。插件能够增强sublime的功能,这个就不废话了安装package control1.使用快捷键 Ctrl+` (这个就是键盘Esc下面的那个), 打开sublime的控制台(这个控制台可以输入并且执行python代码)sublime text3sublime text2手动安装可能由于各种原因,无法使用代码安装,那可以通过以下步骤手动安装Package Control: 点击

php print 这个坑,遇到连接符从右往左执行

在使用php的时候,我很少用到print这个函数,哦,不对,这是一个语言结构,而并非日函数!

看一段代码

<?php  print('a').print('b').print('c');

这个会输出什么?

大多数人的直觉肯定是abc,但如果你运行一下,你会发现输出的是:cb1a1。 (更多…)

你可能还喜欢下面这些文章

std::endl为什么导致程序变慢

最近在写hadoop的streaming任务,在输出的时候用了std::endl,就像下面这样:运行后发现程序跑的比python还慢,令人费解。我入门C++的时候,输出hello world也是这样写的,有什么问题?于是查了一下std::endl,发现问题挺大。std::endl解释如下:也就是说每次执行到std::endl的时候都会将缓冲区的内容写入到输出的对象中,这样一来速度慢也就不足为奇。性能测试不加std::endl性能高出20倍。如果程序的逻辑十分简单,那么输出字符串的时候最好用"\n"代替加std::endl

mysq常用函数大全

很少用到,但是有时候又必须用到,这里收集一下mysql的常用函数一、数学函数ABS(x)   返回x的绝对值BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x)   返回大于x的最小整数值EXP(x)   返回值e(自然对数的底)的x次方FLOOR(x)   返回小于x的最大整数值GREATEST(x1,x2,...,xn)返回集合中最大的值LEAST(x1,x2,...,xn)      返回集合中最小的值LN(x)                    返回x的自然对数LOG(x,y)返回x的以y为底的对数MOD(x,y)              

Shell中的条件判断语句if的用法

shell中的if语法是最让我头疼的语法之一,它的判断就向使用USB插头一样——拿起来插入不行,翻转再插入还不行,再翻转插入行了!为了搞清楚这部分语言,我收集了一些文章关于if条件判断的用法,希望对你也有些帮助。一、基本语法语法说明bash shell会按顺序执行if语句,如果command执行后且它的返回状态是0,则会执行符合该条件执行的语句,否则后面的命令不执行,跳到下一条命令。当有多个嵌套时,只有第一个返回0退出状态的命令会导致符合该条件执行的语句部分被执行,如果所有的语句的执行状态都不为0,则执行else中语句。返回状态:最后一个命令的退出状态,或者当没有条件是真的话为0。注意:1、表

shell 四则运算

1. 使用命令命令可以用于执行基本的算术运算。注意,运算符之间需要有空格。对于乘法,需要使用反斜杠 对 进行转义,因为 在Shell中有特殊的含义(作为通配符)。2. 使用命令命令允许你在Shell中进行算术运算,并直接更新变量的值。3. 使用双括号双括号结构允许你进行算术扩展,并且可以直接在条件语句中使用。4. 使用命令是一个任意精度的计算器语言,它可以用于执行复杂的数学运算。对于浮点运算,非常有用,因为它默认支持小数。5. 使用命令是一个强大的文本处理工具,它也可以用来进行数学运算。选择哪种方法取决于你的具体需求和你所使用的Shell环境。对于简单的整数运算,双括号通常是最方便和高效

C++实现python字符串的endswith方法

可以使用的或方法配合比较运算符来模拟方法的功能。下面是一个示例函数,它检查一个字符串是否以另一个字符串结束:在这个示例中,函数接受两个参数:和。函数首先检查的长度是否大于或等于的长度。如果不是,那么显然不能以结束,函数返回。否则,函数使用方法从的末尾提取与长度相同的子字符串,并将其与进行比较。如果它们相等,那么以结束,函数返回。否则,函数返回。请注意,这个函数是区分大小写的。如果你想要一个不区分大小写的版本,你可以在比较之前使用和函数将和转换为小写。在这个版本中,函数首先使用和函数将和转换为小写。然后,它调用函数来检查转换后的字符串是否以结束。

Go入门:三、函数的声明和调用

这是我Go学习笔记的第三篇!接下来学习的是Go的函数声明和调用。我的语言学习过程一般分为下面几个:1. 变量和数据类型2. 流程控制方法3. 函数声明和调用4. 面向对象5. 语言特性6. 标准库函数声明func 函数名称(参数表) 返回值类型 { // 函数体}写一个函数是非常简单的,掌握语法格式就可以了。函数是一个功能的封装,能让函数体内的代码得到很好的复用。比如我要输出个人信息,我可以把个人信息封装到函数里面,后续直接调用这个函数而不是每次都print一堆信息了上面定义的函数没有参数,也没有返回值,非常简单的一个函数。如果我想让姓名可变,那么可以定义一个带有参数的函数接下来定义一个有

C++入门:三、函数

这是我学习C++的第三篇笔记,函数。我的学习路径是现在学习的是函数的声明、定义、调用等相关知识。函数声明和定义函数的声明包含返回类型,函数名字,0个或者多个形参,无函数体,通常在头文件中对函数进行声明。函数的定义包含返回类型,函数名字,0个或多个形参,以及函数体。比如写一个求阶乘的函数,可以写成下面这样写一些简单的函数大多数语言都差不多,不过可惜每种语言或多或少都有自己的特色,这是比较令人头秃的地方。函数的参数函数可以带有0或多个参数,每个参数都需要声明类型。参数传递可以传值和传引用。如果形参是引用类型,那么它将绑定到对应的实参中,我们成为传引用。否则,将会把实参的值拷贝后赋值给形参,我们成为

Go语言的 make 和 new

new 和 make 是两个内置函数,主要用来创建并分配类型的内存。在我们定义变量的时候,可能会觉得有点迷惑,不知道应该使用哪个函数来声明变量,其实他们的规则很简单,new 只分配内存,make 只能用于 slice、map 和 channel 的初始化。下面我们就来具体介绍一下new在Go语言中,new 函数描述如下:从上面的代码可以看出,new 函数只接受一个参数,这个参数是一个类型,并且返回一个指向该类型内存地址的指针。同时 new 函数会把分配的内存置为零,也就是类型的零值。【示例】使用 new 函数为变量分配内存空间。当然,new 函数不仅仅能够为系统默认的数据类型,分配空间,自定义

计算机语言学习指南

这篇文章讨论基于语言的基本要素,如何快速入门一种计算机语言。是一篇语言从学习到使用的指导手册,并且这种学习方式是一个系统的学习,相比于碎片化的学习,这种学习更加不容易遗忘。语言的基本成分语言的基本成分为数据、运算、控制、传输。想想你学过的语言,是不是都是这样。归结语言的组成成分,学习一门语言可以从这四个方面下手,这四个方面掌握之后,对这个语言就有个最基本的了解了。语言基本成分:数据数据是程序操作的对象。实际上我们可以思考,一个数据拥有的属性有哪些,根据我们已经掌握的语言来说(比如PHP)。$a = 1$a是数据,那么这个数据有哪些属性呢?名称(a),类型(int)。从这一行代码只能发现这两个属

python学习笔记:三、函数

这是第三篇python学习笔记,我们即将要学习python的函数。内容主要包括两个部分,函数的声明和函数的调用。函数声明和调用比如我们要声明一个“吃”的函数,语法如下:def eat(): return "eat something"print(eat())上面是一个没有参数的函数,做的事情很简单,声明一个函数,然后返回一个字符串。接下来要增加一个参数了。def ead(food): return "eat %s" % foodprint(eat('fruit'))可以看到,上面声明了一个带有一个参数的函数,当然可以声明带两个,三个等。这些都是固定的,那么如果要声明一个不固定参数的

utf8中文截断原理以及php的实现

php截断字符串用的是substr,但是这个是无法截断中文的,原因就是中文是采用多字节编码。这里说一下针对utf8编码的汉字截断原理。

UTF-8的编码规则是这样的

1)对于单字节的符号,字节的第一位(字节的最高位)设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。

2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。

下表总结了编码规则,字母x表示可用编码的位。

UTF-8编码方式(十六进制) | 十进制|(二进制)
—————+———————————————————————
0000 0000-0000 007F |0 - 127      | 0xxxxxxx
0000 0080-0000 07FF |192 - 223  |110xxxxx 10xxxxxx
0000 0800-0000 FFFF |224 - 239  |1110xxxx 10xxxxxx 10xxxxxx
0001 0000-0010 FFFF |240 - 247  |11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

更详细的可以去看看utf8编码原理 (更多…)

你可能还喜欢下面这些文章

utf8编码原理

在我的程序中,基本都使用utf8来编码(除非历史原因,实在是无法转换)。但我用的php在处理中文语言的时候,总显得有些生硬,总感觉没有处理英文那么流畅。比如为什么统计字符的数目要远大于汉字的个数?为什么截断中文乱码?为什么一串英文所组成的字符串可以使用数组的方式访问但是中文字符串为什么就是乱码?等等等等之类的问题。这一切的一切,都是因为对utf8编码不了解所导致的!虽然我们有mb_string这个扩展的对中文有很友好的支持,但对于编码原理,还是需要好好的了解一下。但对于初学者,我想你未必有耐心看完这篇文章,可以跳过直接看程序实例,这篇文章可以作为实例程序的参考作用。

mysql varchar类型探秘

mysql中varchar能够存储可变长度的字符串。过去我做的诸多业务中,一般存储短字符串的需求,都会使用varchar类型,并且定义长度为255,也就是varchar(255)。不过为了探究varchar这种类型到底是怎么存储的,它的最大长度能达到多少,我决定区翻一下mysql文档学习一下。varchar怎么存储经过一番了解,varchar最大能存储的长度为65535字节。存储字符串的时候,会将字符串的长度存在首部,接着才是内容。当varchar存储的字符个数小于或等于255的时候,首部需要一个字节来记录字符的个数。当内容大于255的字符的时候,首部需要2个自己来保存长度。varchar能存

MySQL时间字段类型的选择

建表的时候对时间的字段类型选择有些疑惑,于是找出高性能MySQL这本书来看看,书中已经给了我们很好的建议,因此记录下来。保存时间通常有这几种类型可以选择: datetime timestamp int date首先看看datetime,datetime这个类型可以保存从1001年到9999年的数据,内部是将日期和时间封装在YYYYMMDDHHMMSS的整数中,与时区无关,占用8个字节。timestamp,timestamp只能保存1970年到2038年,占用4个字节,和int所占用的字节是一样的。int,int占用的同样是4个字节,和timestamp一样,但是timestamp拥有一

C++字符串拼接

在C++中,字符串拼接可以使用多种方法,下面是一些常用的方法:使用 运算符C++中的 类型支持 运算符来进行字符串拼接。使用 成员函数 类提供了 成员函数,它可以用来拼接字符串。使用 运算符 也支持 运算符来进行字符串拼接。使用 C 风格的字符串拼接虽然不推荐使用C风格的字符串拼接(因为它可能会导致缓冲区溢出),但你还是可以在C++中这样做。在这种情况下,你需要确保目标缓冲区有足够的空间来存储拼接后的字符串。在这个例子中, 函数被用来拼接两个C风格的字符串。注意,在使用 之前,我们检查了 是否有足够的空间来存储拼接后的字符串,以防止缓冲区溢出。使用 对于更复杂的字符串拼接,特

C++实现python字符串的endswith方法

可以使用的或方法配合比较运算符来模拟方法的功能。下面是一个示例函数,它检查一个字符串是否以另一个字符串结束:在这个示例中,函数接受两个参数:和。函数首先检查的长度是否大于或等于的长度。如果不是,那么显然不能以结束,函数返回。否则,函数使用方法从的末尾提取与长度相同的子字符串,并将其与进行比较。如果它们相等,那么以结束,函数返回。否则,函数返回。请注意,这个函数是区分大小写的。如果你想要一个不区分大小写的版本,你可以在比较之前使用和函数将和转换为小写。在这个版本中,函数首先使用和函数将和转换为小写。然后,它调用函数来检查转换后的字符串是否以结束。

python教程(一):变量和数据类型

python的基本数据类型有整型,浮点型,字符串,布尔,列表,元组,字典,集合。它们占用内存和定义方式如下表:类型占用内存如何定义整型(int)动态长度>=24字节a = 1浮点型(float)动态长度>=24字节a = 1.0字符串(string)动态长度,>=37字节,增加一个字符加1字节a = 'str'布尔(boolean)24字节a = True列表(list)动态长度,>=72字节a = []元组(tupe)动态长度,>=56字节a = ()集合(set)动态长度,>=232字节a = set([])占用的内存通过sys.getsizeof()获

rapidjson从字符串解析json

在RapidJSON中,要从字符串解析JSON,你可以使用类的方法。下面是一个简单的例子,展示了如何使用RapidJSON从一个JSON字符串中解析数据:在这个例子中,我们首先定义了一个包含JSON数据的字符串。然后,我们创建了一个对象,并使用方法将JSON字符串解析到这个对象中。解析完成后,我们检查是否有解析错误。如果没有错误,我们就可以通过键(例如"name"、"age"、"city")来访问JSON对象中的各个成员,并使用、等方法来检查成员的类型,并使用、等方法来获取成员的值。最后,我们还展示了如何将解析后的对象转换回JSON字

redis的RDB文件存储结构分析

原文标题:15天玩转redis —— 第十一篇 让你彻底了解RDB存储结构这里我们来继续分析一下RDB文件存储结构,首先大家都知道RDB文件是在redis的“快照”的模式下才会产生,那么如果我们理解了RDB文件的结构,是不是让我们对“快照”模式能做到一个心中有数呢?一:RDB结构剖析首先呢,我们要对RDB文件有一个概念性的认识,比如下面画的图一样: 从图中,我们大概看到了RDB文件的一个简要的存储模式,但为了更好的方便对照,我准备save一个empty database,对比一下看看效果: 然后我们用winHex打开dump.rdb文件,看看它的16进制。好了,该打开的我都

python rsplit

在Python中, 是字符串(str)对象的一个方法,用于从字符串的末尾(右侧)开始分割字符串。这个方法与 方法相似,但方向相反。 方法接受一个分隔符(默认为所有空白字符)和一个最大分割次数作为参数,并返回分割后的子字符串列表。下面是 方法的基本语法::分隔符,用于指定如何分割字符串。如果不指定分隔符,则默认为所有的空白字符(包括空格、换行符 、制表符 等)。:可选参数,指定最大分割次数。如果指定了 ,则分割不会超过这个指定的次数,并且结果列表的长度最多为 。如果 参数被省略或者为 -1,则分割会进行到字符串的末尾。下面是一些使用 方法的例子:注意:如果 参数为空字符串 ,则 会

bash教程:一、变量,函数,控制流程

变量的定义和使用变量的定义bash变量定义很简单。如下:a="hello"左边是变量名,右边是变量值。bash是弱类型,因此不需要给a加上类型。注意,等号两边不能有空格 比如 a = "hello",这是错误的。变量使用变量使用需要在定义的变量名之前加上$,比如我们打印之前定义的aecho $a特殊变量后面再说,现在仅仅是最基础的,能够让自己写出一个完整的脚本就行。流程控制流程控制则是编写程序必备的过程,比如顺序,循环,条件,分支等等。在其他类C语言中有if...else,for,while,do...while,switch,那么在bash里面,这些应该怎么写呢。if...else结构a=0

utf8编码原理

在我的程序中,基本都使用utf8来编码(除非历史原因,实在是无法转换)。但我用的php在处理中文语言的时候,总显得有些生硬,总感觉没有处理英文那么流畅。

比如为什么统计字符的数目要远大于汉字的个数?

为什么截断中文乱码?

为什么一串英文所组成的字符串可以使用数组的方式访问但是中文字符串为什么就是乱码?

等等等等之类的问题。这一切的一切,都是因为对utf8编码不了解所导致的!虽然我们有mb_string这个扩展的对中文有很友好的支持,但对于编码原理,还是需要好好的了解一下。但对于初学者,我想你未必有耐心看完这篇文章,可以跳过直接看程序实例,这篇文章可以作为实例程序的参考作用。 (更多…)

你可能还喜欢下面这些文章

utf8中文截断原理以及php的实现

php截断字符串用的是substr,但是这个是无法截断中文的,原因就是中文是采用多字节编码。这里说一下针对utf8编码的汉字截断原理。UTF-8的编码规则是这样的1)对于单字节的符号,字节的第一位(字节的最高位)设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。2)对于n字节的符号(n>1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。下表总结了编码规则,字母x表示可用编码的位。UTF-8编码方式(十六进制) | 十进制|(二进制)—————+—

MySQL时间字段类型的选择

建表的时候对时间的字段类型选择有些疑惑,于是找出高性能MySQL这本书来看看,书中已经给了我们很好的建议,因此记录下来。保存时间通常有这几种类型可以选择: datetime timestamp int date首先看看datetime,datetime这个类型可以保存从1001年到9999年的数据,内部是将日期和时间封装在YYYYMMDDHHMMSS的整数中,与时区无关,占用8个字节。timestamp,timestamp只能保存1970年到2038年,占用4个字节,和int所占用的字节是一样的。int,int占用的同样是4个字节,和timestamp一样,但是timestamp拥有一

linux awk命令分析你的文本或日志,awk命令用法

简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己的语言: AWK 程序设计语言 , 三位创建者已将它正式定义为“样式扫描和处理语言”。它允许您

mysql varchar类型探秘

mysql中varchar能够存储可变长度的字符串。过去我做的诸多业务中,一般存储短字符串的需求,都会使用varchar类型,并且定义长度为255,也就是varchar(255)。不过为了探究varchar这种类型到底是怎么存储的,它的最大长度能达到多少,我决定区翻一下mysql文档学习一下。varchar怎么存储经过一番了解,varchar最大能存储的长度为65535字节。存储字符串的时候,会将字符串的长度存在首部,接着才是内容。当varchar存储的字符个数小于或等于255的时候,首部需要一个字节来记录字符的个数。当内容大于255的字符的时候,首部需要2个自己来保存长度。varchar能存

redis的RDB文件存储结构分析

原文标题:15天玩转redis —— 第十一篇 让你彻底了解RDB存储结构这里我们来继续分析一下RDB文件存储结构,首先大家都知道RDB文件是在redis的“快照”的模式下才会产生,那么如果我们理解了RDB文件的结构,是不是让我们对“快照”模式能做到一个心中有数呢?一:RDB结构剖析首先呢,我们要对RDB文件有一个概念性的认识,比如下面画的图一样: 从图中,我们大概看到了RDB文件的一个简要的存储模式,但为了更好的方便对照,我准备save一个empty database,对比一下看看效果: 然后我们用winHex打开dump.rdb文件,看看它的16进制。好了,该打开的我都

记一次进程异常退出的问题排查

机器搬家之后,之前一直稳定的PHP多进程程序子进程突然异常退出,但是退出的不是很频繁,查看进程日志并也没有发现有什么导致退出的,问题比较诡异。于是开启了一段问题排查之路。首先查看内核日志,使用dmesg,拉到最后发现有一些这样的错误,看来确实是崩溃了。 php: segfault at 7f6443ee18c8 ip 00007f6443ee18c8 sp 00007fff4d4ba818 error 15 in libc-2.17.so php: segfault at 0 ip 000000000075919d sp 00007fff0c6e0578 error 4 in php trap

ftp传输binary和ascii模式(二进制和文本)的区别

ASCII模式和BINARY模式的区别是回车换行的处理,binary模式不对数据进行任何处理,asci模式将回车换行转换为本机的回车字符,比如Unix下是\n,Windows下是\r\n,Mac下是\rascii模式下会转换文件不能说是不同系统对回车换行解释不同,而是不同的系统有不同的行结束符unix系统下行结束符是一个字节,即十六进制的0A,而ms的系统是两个字节,即十六进制的0D0A所以当你用ascii方式从unix的ftp server下载文件时(不管是二进制或者文本文件),每检测到一个字节是0A,就会自动插入一个0D,所以如果你的文件是二进制文件比如可执行文件、压缩包什么的,就肯定不能

linux shell 入门

从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。Linux的Shell种类众多,常见的有:Bourne Shell(/usr/bin/sh或/bin/sh)、Bourne Again Shell(/bin/bash)、C Shell(/usr/bin/csh)、K Shel

chkconfig给linux添加开机自启动服务,chkconfig命令详解

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。使用语法chkconfig 或 chkconfig chkconfig 在没有参数运行时,会显示所有的服务在开机启动状态。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指 定了on,off或者reset,那么chkconfig 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开

C++入门:一、变量和数据类型

这是我的C++学习笔记第一篇,同所有的程序语言学习路径一样,首先学习的是变量和数据类型。我的学习路径如下:1. 变量和数据类型2. 流程控制3. 函数声明和调用4. 面向对象5. 标准库这一章,学习的是变量和数据类型,需要了解的有:了解这些,对于变量基本就够了。Hello world在开始之前,先写一个hello world来熟悉一下程序的主要结构以及如何打印一个变量。iostream提供标准输入输出的头文件,程序以main函数问入口,std为标准库的命名空间,“<<” 为输出操作符,std::cout为标准输出,std::endl为结束符,表示将等待输出的内容从内存传送到标准输出

强化twenty fifteen主题,twenty fifteen pro主题制作过程

被最新的twenty fifteen主题迷上了,这就是我心目中的样式!但有功能还是需要添加的,因此在twenty fifteen的主题基础上,增加了一些功能,命名为twenty fifteen pro主题,目前我所用的主题就是twenty fifteen pro主题。

目前增加的功能有这些

1.专辑文章

将一些文章整个成专辑,比如之前胡超的sublime这个专辑,随便点进去一篇文章,左侧栏都会出现该专辑的系列文章,并且在后台还可以手动控制其排序。

这样的好处就是能够将同类别,教程之类的文章聚合起来,更加利于阅读。

(更多…)

你可能还喜欢下面这些文章

sublime优秀插件推荐

最佳的Sublime Text 插件朋友们你们好!我尝试着收集了最佳的ST插件,这些插件真的会改善你的工作流程。我搜索了很多网站,下面是我的成果。WebInspector在 JavaScript调试方面,这是一个令人惊讶的工具,Sublime上的完整的代码检查工具。功能:使用绝对路径储存在用户设置中的项目断点,控制台,分步和断点调试器,栈追踪。这些都能够很棒的工作!而且Mozilla还提供了一个插件Fireplay让你连接到Firefox 开发工具和最简单的调试器JSHintEmmet编辑器中最流行的插件之一。Emmet,前身Zen Coding也是web开发者提高生产力最有效的方法之一。按下

蜘蛛痕迹统计插件,spideranalyse

 做成了独立插件啦,不集成到主题啦,所有主题都能用啦插件github地址:https://github.com/cmhc/spideranalyse/update2015-10-19插件已经提交到wordpress官方,虽然小,也算是一个小小的尝试吧。玩wordpress好多年,还从来没干过,一直都是自娱自乐,有时候还赚点零花钱,说来惭愧。插件地址: https://wordpress.org/plugins/spideranalyse/只有当你的网站被蜘蛛爬行,才会记录日志,因此开始会没有数据的,慢慢等待吧。在使用插件过程中可能会遇到的问题问题收集中。。。 

imajax-single,一款全站ajax的博客主题

近半年来,慢慢的制作一款能够适合博客使用的,能够方便阅读的,速度要快主题。灵感来自于wordpress的官方默认主题。制作缘由很喜欢wordpress的默认主题twenty-fifteen,但是不是全站ajax,曾经为twenty-fifteen增加过诸多功能,但是使用起来还是特别的不方便,因此就自己制作了一份主题了。制作过程断断续续的几个月,有时间就写一点代码,没时间就放着。由于博主现在主要搞后端接口了,所以在前端方面花的功夫就太少了,主题外观感觉看起来中规中矩,不过使用起来应该还是很贴心的。主题外观典型的双栏主题,侧栏在左,内容在右。如果你只是想要一个博客,并且喜欢整理你日常的生活内容,那

php开发者的sublime插件和配置

作为一个php开发者,换工作环境的时候可能会重新配置编辑器,这里给出一个比较好的环境(也是我的常用环境)。配置篇每家公司都会有内部的规范,但是只要公司不是特别奇葩,那么规范一般是大同小异。根据规范来设定编辑器,那么写出来的代码则很容易符合规范了。此外,一个设置好的编辑器能够大大提高编码效率!下面是我的配置,可以根据注释自行调整{ // 粗体文本 "bold_folder_labels": true, // 显示所有的空白字符,这样可以看出空格和tab "draw_white_space": "all", // 设置字体 "font_size": 15,

sublime merge和diff的插件sublimemerge pro

一直使用的是beyond compare这个软件来作为比对和合并工具,不可否认,在用git的时候,配置这款工具比对确实很省事。现在我在用sublime写代码,在写的过程中可能涉及到和以前的代码版本做比对,这个时候还要打开这个软件那可不是我想要干的,插件众多的sublime我想这个比对插件肯定是有的吧,于是就找到了sublimemerge pro这款插件。直接 ctrl + alt + p 输入install package...,搜索sublimemerge,安装即可。如果对安装方法不清楚可以查看sublime安装插件的教程。安装之后会有一个readme,里面介绍了用法,如下  In file

wordpress支撑百万文章解决方案

作为一个博客系统,wordpress在易用性和可扩展性上都非常出色。后题用户体验是非友好,插件众多。然而由于定位的问题,wordpress无法支撑大量文章。当文章数量达到上万的时候,有些主题的前台可能会非常卡。当文章数量达到数十万的时候,wordpress后台可能会特别卡。更何况大部分插件并没有在性能上下功夫,插件越多,wordpress越卡。那么有没有什么方案能让wordpress支撑大量文章?十万,百万,甚至更多?支撑百万数据并不是存入一百万文章就可以了。实际上百万文章对mysql来说毫无压力。在mysql中,百万文章仅仅是百万条记录而已。导致缓慢的是mysql的查询。对于百万条记录的数据

sublime安装package control,让插件安装更简单

package control是什么东东?sublime要如何安装package control呢?且往下看。package control就是sublime的插件管理中心,你可以通过这个东西来安装,更新或者卸载插件。插件能够增强sublime的功能,这个就不废话了安装package control1.使用快捷键 Ctrl+` (这个就是键盘Esc下面的那个), 打开sublime的控制台(这个控制台可以输入并且执行python代码)sublime text3sublime text2手动安装可能由于各种原因,无法使用代码安装,那可以通过以下步骤手动安装Package Control: 点击

后端开发需要安装的chrome插件

每一次更换环境都要重新安装一遍chrome的各种插件,这次就记录下来,供下次需要,也供正在阅读本文的你作为参考,说不定能够找到一些比较好的插件呢。json handle在处理接口的时候,json-handle格式化输出的json字符串。AdBlock比较厌烦广告,adblock是一个比较好的屏蔽广告的插件HostSwitch使用代理的方式来达到切换host目的,HostSwitch是一个不错的选择,不直接修改hosts文件。在调试网站或者接口是一个非常棒的选择Proxy SwitchyOmega一个非常棒的代理插件,能够根据规则选择是否使用代理Eye Dropper一个网页取色器的插件,本来想

网页常用颜色和字体速查表

网页中不同颜色和字体给人的感觉差别是很大的,学会如何使用颜色表达一个网站的主题是网站设计者必须考虑的事情。下面我整理了一些网站的配色和字体供大家参考。淘宝配色和字体默认字体:12px/1.5 tahoma,arial,'Hiragino Sans GB','\5b8b\4f53',sans-serif默认文字颜色:#666主色调:#F40价格配色:#F40价格字体:verdana, arial 700 18px加深色:#F82800天猫配色和字体默认字体:12px/1.5 tahoma,arial,'\5b8b\4f53'默认颜色:未设定 #000主色调:#DD2727价格配色:#C00价格字

实现在编辑框(wordpress)粘贴二进制图片数据

ctrl+alt+a,qq截图,鼠标一弄,一张图好了。但是,我得先保存,然后在传到wordpress里面去,对于贴图实在是太麻烦了啊。我记得用ctrl+v可以直接在qq的聊天框粘贴图片啊。那就来改造编辑框,让ctrl+v能够直接把图片粘过来!让文章配图更加流畅!=====本想想用js实现,结果我却找到了插件,不得不说,wordpress的插件实在是,非常的多啊插件叫OnePress Image Elevator,从现在开始我的文章配图就多了起来。安装完之后,使用qq截图,然后再粘贴就非常方便了。附上一个知乎上面的问答,也是关于这个的http://www.zhihu.com/question/2

让sublime支持php,python等脚本的执行

sublime有自己的Build系统,默认的快捷键是ctrl+b。

只需要定制对应语言的执行命令,就可以支持各个语言的编译,执行了。

这里对几种主流的脚本语言执行做一些教程。

打开Tools->Build System -> New Build System  ...

插入对应的json格式的配置即可

php

{
    "cmd": ["php", "$file"],
    "file_regex": "php$",
    "selector": "source.php"
}

保存为php.sublime-build,这下执行php不用老是跑去刷网页了,也不用老是开cmd窗口了。 (更多…)

你可能还喜欢下面这些文章

sublime text自定义快捷键的方法

sublime text如何定义快捷键呢?下面来给出方法sublime text2和sublime text3自定义快捷键的方法是一样的。打开Preferrences -> Key Bindings-User  这个就是用户自定义快捷键的配置文件了。可以参照  Preferrences -> Key Bindings-Default 这个系统默认的快捷键配置,里面就是一个大大的json啦。不懂json?那不行,必须得学!keys对应的就是快捷键啦,而command对应的就是sublime的命令。如果想要修改快捷键,直接修改对应的keys里面的快捷键就可以啦。如何查看command请

Sublime 自定义快捷键

sublime插件丰富,当我们安装了诸多插件之后,发现要使用其中的功能还得用鼠标去点,这岂不是太麻烦了,让我们来自定义快捷键吧!写在前面在写这篇文章之前,我也为自定义快捷键感到无从下手,而在网上搜索千篇一律的都是打开Preferences->key bindings user,添加一些东西进去,比如等等,这个command是什么玩意?比如下面{ "keys": , "command":"duplicate_line" },等等,这个command是什么?我要去哪儿找?我安装了一个新的插件,能使用快捷键吗?等等一系列的疑问,从未有人解答过,可能一些文章都是抄袭拼凑吧。如何查找Command

解决Mac ReportCrash进程占用大量CPU的问题

今天电脑风扇一直呼呼转,发烫利害。于是看看到底哪个进程占用了大量cpu,top查看发现ReportCrash占用了大量CPU,直接kill之后还是会拉起。于是从网上查看如何关闭这个进程,方法如下:打开终端,执行下面命令launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plistsudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist如果后续要打开,可以在终端执行如下命令:launchct

记录一下使用中PDO出现的一个问题:Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll().

在使用PDO的时候,一条sql语句打死都不执行,dump一下errorInfo试试,出现这样的错误信息问题描述居然告诉我还有语句没有执行完成?当前的查询未能执行,逗我么!考虑使用fetchAll,或者开启缓冲查询,行,你说得对....问题出现的使用场景服务器服务器为linux,安装了一个什么面板套件之类的,不是自家机器,也懒得去折腾,在本地的windows环境并没有该问题。程序笔者在对数据库的一个计数字段进行更新的时候,首先会先查询这个记录是否存在,如果存在则进行更新,如果不存在则先插入。问题就出现在记录不存在的时候,当我查询这条不存在的记录时候,发现这个记录不存在,然后进行插入,发现之前的查

让sublime支持c/c++语言的编译

sublime只是一个编辑器,让sublime支持c或者c++则是通过设定sublime快捷键调用相关的命令,达到编辑和执行c代码的目的。首先需要下载一个c语言的编译器,对于 Windows 和 Linux 来说可以采用 gcc 。For Windows:下载安装MinGW,然后在系统环境变量中添加(假设你把 MinGW安装在 C 盘),你安装到哪个路径就写哪个路径,别傻乎乎的直接复制啦,不然没用哦。验证一下是否成功。win+r(win就是徽标),输入cmd,打开cmd窗口之后输入gcc -v看看,如果有gcc的信息说明成功了,如果显示gcc不是内部或外部命令,也不是可运行的程序那就是环境变量

树莓派zero连接wifi

这是一篇记录树莓派连接wifi的文章。这里我们使用wpa_cli的交互环境来连接无线网,这比直接使用配置要方便得多。注意,wpa_cli需要在root环境下执行终端下面执行: sudo wpa_cli -iwlan0-i参数表示使用哪个网卡,我们需要指定只用wlan0这个网卡。具体可以执行ifconfig看看都有哪些网卡可以使用,如果你的树莓派带有wifi模块,那么一般是wlan0进入交互模式之后,首先需要执行scan命令,该命令能扫描附近的热点。然后输入scan_result列出扫描出来的热点上面扫描出了我的一个手机热点。我们知道了热点的ssid之后就可以连接了,首先增加一个网络连接,执行a

计算机语言学习指南

这篇文章讨论基于语言的基本要素,如何快速入门一种计算机语言。是一篇语言从学习到使用的指导手册,并且这种学习方式是一个系统的学习,相比于碎片化的学习,这种学习更加不容易遗忘。语言的基本成分语言的基本成分为数据、运算、控制、传输。想想你学过的语言,是不是都是这样。归结语言的组成成分,学习一门语言可以从这四个方面下手,这四个方面掌握之后,对这个语言就有个最基本的了解了。语言基本成分:数据数据是程序操作的对象。实际上我们可以思考,一个数据拥有的属性有哪些,根据我们已经掌握的语言来说(比如PHP)。$a = 1$a是数据,那么这个数据有哪些属性呢?名称(a),类型(int)。从这一行代码只能发现这两个属

php多进程编程:第一次fork

工作原因,要用到php多进程,于是粗略的了解一下,完成之后把过程记录下来,整理成教程,希望对学习php多进程编程的程序员有所帮助。前言使用php cli的时候,我们在终端会这样运行一个hello.php程序,这样linux会为我们创建一个进程。不考虑 nohup ,在一个终端,我们以cli方式运行的php程序也只能有这一个进程。一个进程处理的任务必定是有限的,在系统资源空闲那么多的情况下,为什么不使用多进程来提高效率呢?不过php多进程需要安装pcntl和posix扩展(windows不支持)fork,创建子进程创建子进程的方法就是fork,在php里面,这个函数是pcntl_fork()pc

用php编写守护进程

在此之前,需要知道守护进程这个概念,知道之后,才可以用php来编写守护进程。那么创建守护进程需要有下面这几个步骤。1.创建子进程,父进程退出父进程先与子进程退出,子进程则会被1号进程收养,这个子进程就会成为init的子进程php使用pcntl_fork()来创建子进程。pcntl_fork()返回一个整型值,在父进程里面返回的是子进程的id,子进程返回的是0,失败则返回-1。这样我们就可以根据这个来分别控制父进程和子进程执行任务。2.子进程创建会话这个是重要的一步,在这一步中该子进程会做这些事情:1.让进程摆脱原会话的控制;2.让进程摆脱员进程组的控制;3.让进程摆脱终端的控制。为什么要这样?

序言:我的sublime

多年以前有朋友推荐我用sublime,那大概是2011年的时候吧,我用tango notpad2,曾觉得这是用的最舒服的编辑器,高亮,秒开,太舒服。当我无意中看到好多人在用sublime的时候,我好奇的试一试,这一试,就是几年了,或许我以后也将会一直用下去。开始,相当长的一段时间内仅仅将sublime当做一个编辑器用,我想的是看的舒服,打开快,界面够酷就可以了,而且我用的也确实很舒服。但后来,我觉得要是sublime能够直接f5来运行程序是多方便啊,实际上,这对于sublime就是小case,sublime灵活的配置,快捷键你想怎么定义就怎么定义,只要机器上面安装了编译器或者各种语言的解释器就

让sublime支持c/c++语言的编译

sublime只是一个编辑器,让sublime支持c或者c++则是通过设定sublime快捷键调用相关的命令,达到编辑和执行c代码的目的。

首先需要下载一个c语言的编译器,对于 Windows 和 Linux 来说可以采用 gcc 。

For Windows:下载安装MinGW,然后在系统环境变量中添加

C:\MinGW\bin

(假设你把 MinGW安装在 C 盘),你安装到哪个路径就写哪个路径,别傻乎乎的直接复制啦,不然没用哦。

验证一下是否成功。win+r(win就是徽标),输入cmd,打开cmd窗口之后输入gcc -v看看,如果有gcc的信息说明成功了,如果显示gcc不是内部或外部命令,也不是可运行的程序那就是环境变量添加错啦!仔细检查一下呗。

最后在Sublime Text 2中Tools –> Build System –> New Build System…输入如下内容并保存为c.sublime-build (更多…)

你可能还喜欢下面这些文章

Sublime 自定义快捷键

sublime插件丰富,当我们安装了诸多插件之后,发现要使用其中的功能还得用鼠标去点,这岂不是太麻烦了,让我们来自定义快捷键吧!写在前面在写这篇文章之前,我也为自定义快捷键感到无从下手,而在网上搜索千篇一律的都是打开Preferences->key bindings user,添加一些东西进去,比如等等,这个command是什么玩意?比如下面{ "keys": , "command":"duplicate_line" },等等,这个command是什么?我要去哪儿找?我安装了一个新的插件,能使用快捷键吗?等等一系列的疑问,从未有人解答过,可能一些文章都是抄袭拼凑吧。如何查找Command

sublime text自定义快捷键的方法

sublime text如何定义快捷键呢?下面来给出方法sublime text2和sublime text3自定义快捷键的方法是一样的。打开Preferrences -> Key Bindings-User  这个就是用户自定义快捷键的配置文件了。可以参照  Preferrences -> Key Bindings-Default 这个系统默认的快捷键配置,里面就是一个大大的json啦。不懂json?那不行,必须得学!keys对应的就是快捷键啦,而command对应的就是sublime的命令。如果想要修改快捷键,直接修改对应的keys里面的快捷键就可以啦。如何查看command请

sublime安装package control,让插件安装更简单

package control是什么东东?sublime要如何安装package control呢?且往下看。package control就是sublime的插件管理中心,你可以通过这个东西来安装,更新或者卸载插件。插件能够增强sublime的功能,这个就不废话了安装package control1.使用快捷键 Ctrl+` (这个就是键盘Esc下面的那个), 打开sublime的控制台(这个控制台可以输入并且执行python代码)sublime text3sublime text2手动安装可能由于各种原因,无法使用代码安装,那可以通过以下步骤手动安装Package Control: 点击

sublime安装插件的方法

sublime安装插件非常简单。主要方式有两种1.直接安装打开菜单栏里的“Preferences”--->"Browse Packages",打开包的位置 2.通过Package Control来安装如果没有安装package control,那么可以查看这篇文章:sublime安装package control,让插件安装更简单已经安装package control的,点击菜单栏的“Preferences”-->"Package Control",或者可以使用快捷键ctrl+shift+p 打开(mac使用cmd+shift+p)。在打开的终端窗口,输入“install

让sublime支持less css,以及支持压缩css的less插件

要想让sublime支持less,不仅仅是装个sublime插件就完事了啊!事情的经过还是颇为曲折的。第一步:安装nodejs首先先配置一下环境,less需要nodejs支持,所以我们先要安装一下nodejs。到nodejs官网下载就可以了:https://nodejs.org/en/ 第二步:安装less插件由于我的是windows,所以打开cmd啦,用npm安装less,命令为:npm install -g less@latest等待一会儿,结果就如图啦:这里我们的less就安装完毕了。第三步:安装sublime的less2cssctrl+shift+p调出面板,输入install pac

sublime merge和diff的插件sublimemerge pro

一直使用的是beyond compare这个软件来作为比对和合并工具,不可否认,在用git的时候,配置这款工具比对确实很省事。现在我在用sublime写代码,在写的过程中可能涉及到和以前的代码版本做比对,这个时候还要打开这个软件那可不是我想要干的,插件众多的sublime我想这个比对插件肯定是有的吧,于是就找到了sublimemerge pro这款插件。直接 ctrl + alt + p 输入install package...,搜索sublimemerge,安装即可。如果对安装方法不清楚可以查看sublime安装插件的教程。安装之后会有一个readme,里面介绍了用法,如下  In file

php开发者的sublime插件和配置

作为一个php开发者,换工作环境的时候可能会重新配置编辑器,这里给出一个比较好的环境(也是我的常用环境)。配置篇每家公司都会有内部的规范,但是只要公司不是特别奇葩,那么规范一般是大同小异。根据规范来设定编辑器,那么写出来的代码则很容易符合规范了。此外,一个设置好的编辑器能够大大提高编码效率!下面是我的配置,可以根据注释自行调整{ // 粗体文本 "bold_folder_labels": true, // 显示所有的空白字符,这样可以看出空格和tab "draw_white_space": "all", // 设置字体 "font_size": 15,

sublime优秀插件推荐

最佳的Sublime Text 插件朋友们你们好!我尝试着收集了最佳的ST插件,这些插件真的会改善你的工作流程。我搜索了很多网站,下面是我的成果。WebInspector在 JavaScript调试方面,这是一个令人惊讶的工具,Sublime上的完整的代码检查工具。功能:使用绝对路径储存在用户设置中的项目断点,控制台,分步和断点调试器,栈追踪。这些都能够很棒的工作!而且Mozilla还提供了一个插件Fireplay让你连接到Firefox 开发工具和最简单的调试器JSHintEmmet编辑器中最流行的插件之一。Emmet,前身Zen Coding也是web开发者提高生产力最有效的方法之一。按下

记录一次编译安装php7的过程,以后当做参考

之前安装过一次php7,不过配置参数听过,这次再安装,就记录一下,后面就当做参考了,主要是配置里面东西有点多。STEP 1去php官网下载最新版本的php,目前是7.0.10,地址:http://php.net/downloads.php#v7.0.10,可以使用下面的命令,直接下载解压$ wget http://am1.php.net/get/php-7.0.10.tar.gz/from/this/mirrortar -xvf mirrorSTEP 2进入刚才解压的文件,应该是 php-7.0.10。安装之前需要解决一下依赖问题。STEP 3为安装提供一系列的配置STEP 4进行编译,安装最

蜘蛛痕迹统计插件,spideranalyse

 做成了独立插件啦,不集成到主题啦,所有主题都能用啦插件github地址:https://github.com/cmhc/spideranalyse/update2015-10-19插件已经提交到wordpress官方,虽然小,也算是一个小小的尝试吧。玩wordpress好多年,还从来没干过,一直都是自娱自乐,有时候还赚点零花钱,说来惭愧。插件地址: https://wordpress.org/plugins/spideranalyse/只有当你的网站被蜘蛛爬行,才会记录日志,因此开始会没有数据的,慢慢等待吧。在使用插件过程中可能会遇到的问题问题收集中。。。 


Warning: Trying to access array offset on value of type null in /www/wwwroot/imhuchao.com/wp-content/plugins/imwpcache-dist/build/f81bf7f3559a4bfd6f708d81610976c546.php on line 2

Warning: Trying to access array offset on value of type null in /www/wwwroot/imhuchao.com/wp-content/plugins/imwpcache-dist/build/f81bf7f3559a4bfd6f708d81610976c546.php on line 2

Warning: Trying to access array offset on value of type null in /www/wwwroot/imhuchao.com/wp-content/plugins/imwpcache-dist/build/f81bf7f3559a4bfd6f708d81610976c546.php on line 2