摘要:
php heredoc 与 nowdocheredoc 结构heredoc 句法结构:testblogFDIPZONE;echo $content;?>heredoc 结构不能用来初始化类的属性。自 PHP 5.3 起,此限制仅对 heredoc 包含变量时有效。下例将会出错。a;?>heredoc结构中,变量将被替换,但方法不会。含有复杂的变量时要格外小心。nowdoc 结构nowdoc 句法结构很象 heredoc 结构,但是 nowdoc 中不进行解析操作。这种结构很适合用于嵌入php代码或其它大段文本而无需对其中的特殊字符进行转义。nowdoc 与 heredoc 结构一样 阅读全文
摘要:
(deque,全名double-ended queue)是一种具有队列和栈的性质的数据结构。双向队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。在实际使用中,还可以有输出受限的双向队列(即一个端点允许插入和删除,另一个端点只允许插入的双向队列)和输入受限的双向队列(即一个端点允许插入和删除,另一个端点只允许删除的双向队列)。而如果限定双向队列从某个端点插入的元素只能从该端点删除,则该双向队列就蜕变为两个栈底相邻的栈了。DEQue.class.php_type = in_array($type, array(1,2,3,4,5,6))? $type : 1; $th... 阅读全文
摘要:
shell 生成指定范围随机数与随机字符串1.使用系统的 $RANDOM 变量fdipzone@ubuntu:~$ echo $RANDOM17617$RANDOM 的范围是 [0, 32767]如需要生成超过32767的随机数,可以用以下方法实现。例:生成400000~500000的随机数#!/bin/bashfunction rand(){ min=$1 max=$(($2-$min+1)) num=$(($RANDOM+1000000000)) #增加一个10位的数再求余 echo $(($num%$max+$min))}rnd=$(rand 400000 500... 阅读全文
摘要:
shell date 命令说明用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]以给定的格式显示当前时间,或是设置系统日期。 -d,--date=字符串 显示指定字符串所描述的时间,而非当前时间 -f,--file=日期文件 类似--date,从日期文件中按行读入时间描述 -r, --reference=文件 显示文件指定文件的最后修改时间 -R, --rfc-2822 以RFC 2822格式输出日期和时间 例如:2006年8月7日,星期一 12:34:56 -0600 ... 阅读全文
摘要:
shell 监控cpu,memory,load average,记录到log,当负载压力时,发电邮通知管理员。原理:1.获取cpu,memory,load average的数值2.判断数值是否超过自定义的范围,例如(CPU>90%,Memory2)3.如数值超过范围,发送电邮通知管理员。发送有时间间隔,每小时只会发送一次。4.将数值写入log。5.设置crontab 每30秒运行一次。ServerMonitor.sh#!/bin/bash# 系统监控,记录cpu、memory、load average,当超过规定数值时发电邮通知管理员# *** config start ***# 当前目 阅读全文
摘要:
ssh命令格式如下:usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] [-D [bind_address:]port] [-e escape_char] [-F configfile] [-I pkcs11] [-i identity_file] [-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec] [-O ctl_cmd] [-o o... 阅读全文
摘要:
linux crontab 命令,最小的执行时间是一分钟。如需要在小于一分钟内重复执行,可以有两个方法实现。1.使用延时来实现每N秒执行创建一个php做执行动作,非常简单,就是把当前时间写入log。crontab -e 输入以下语句,然后:wq保存退出。* * * * * php /home/fdipzone/php/crontab/tolog.php* * * * * sleep 10; php /home/fdipzone/php/crontab/tolog.php* * * * * sleep 20; php /home/fdipzone/php/crontab/tolog.php* * 阅读全文
摘要:
linux系统监控有以下命令:uptime:显示系统负载情况mpstat:显示 CPU 性能free:显示内存使用情况vmstat:显示虚拟内存使用情况iostat:显示系统 I/O 活动netstat:显示网络的活动df/du:显示磁盘使用情况1. uptimefdipzone@ubuntu:~$ uptime 00:06:00 up 32 min, 2 users, load average: 0.00, 0.03, 0.0700:06:00 表示当前时间32min 表示系统运行时间2 users 表示当前用户数load average: 0.00, 0.03, 0.07 分别表示过去.. 阅读全文
摘要:
使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严紧,就有SQL注入风险。虽然可以用mysql_real_escape_string()函数过滤用户提交的值,但是也有缺陷。而使用PHP的PDO扩展的 prepare 方法,就可以避免sql injection 风险。PDO(PHP Data Object) 是PHP5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,如 php_mysql.dll。 PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助 。官方地址:http 阅读全文
摘要:
SOAP 是基于XML和HTTP通讯协议,XML各个平台,各种语言都支持的一种语言。WSDL 是网络服务描述语言(Web Services Description Language),是一种使用XML格式的文档。这种文档可描述某个Web Service。可规定服务的位置,及服务提供的操作。不同语言之间需要通信(例如:php,java,c),可以通过SOAP,WSDL使不同操作系统,不同技术的编程语言互相通信。php soap 扩展安装扩展位置在php安装包的 ext/soap目录,安装步骤:cd php-5.3.15/ext/soapphpize./configuresudo makesudo 阅读全文
摘要:
使用C创建php扩展优点:1.提高运行效率。2.降低php复杂度,可以直接调用扩展方法实现功能。3.方便与第三方库交互。缺点:1.开发比php复杂。2.可维护性降低。3.开发周期变长。php开发,发现问题后,只要修复问题,即可见到效果。如果使用扩展,修复后需要重新编译,重启服务,才能见到效果。首先,假定需要实现一个方法:将url字符串转换成超链接。php实现方法:'.$name.'';}echo strtolink('http://blog.csdn.net/fdipzone', 'fdipzone blog', 1);?>现在使用 阅读全文
摘要:
php 构造函数支持不同个数参数方法原理:在__construct中使用func_num_args获取参数个数,再根据参数个数执行不同的调用。参数值使用func_get_arg() 方法获得。demo:_args = array( 'id' => func_get_arg(0), 'dname' => func_get_arg(1) ); }elseif($args_num==1 && is_array(... 阅读全文
摘要:
C 使用异或(XOR)加密/解密文件之前写过一篇《php 使用异或(XOR)加密/解密文件》,但php执行的速度很慢,因此这次使用C重写,速度有很大的提高。xor_encrypt.c/** XOR 加密/解密文件 */#define TRUE 1#define FALSE 0#include #include #include #include // 如果在/usr/include/找不到,可以在/usr/include/sys/复制过去// 输出信息void msg_log(char *str);// 判断文件是否存在int file_exists(char *filename);... 阅读全文
摘要:
php Timer 页面运行时间监测类,可按不同key监测不同的运行时间Timer.class.phpgetKey($key); $this->_start[$flag] = $this->getMicrotime(); } /** 记录结束时间 * @param String $key 标记 */ public function end($key=''){ $flag = $this->getKey($key); $this->_end[$flag] = $this->getMicrotime(); } /*... 阅读全文
摘要:
MongoDB 主从同步设置关于MongoDB的安装及启动参数说明可以参考我之前转载的《Ubuntu安装MongoDB》与《Mongodb启动命令mongod参数说明》主从设置Master: 192.168.111.103 Port:8001Slave:192.168.111.104 Port:8001启动Mastermongod --dbpath /data/masterdb/ --master --oplogSize 64 --port 8001 --fork --logpath /var/logs/mongodb/mongod.log启动Slavemongod --dbpath /dat 阅读全文
摘要:
Apache 搭建HTTPS Virtual Host1.创建SSL证书首先需要安装openssl,linux系统默认已安装,如没有则用以下命令安装:sudo apt-get install opensslsudo apt-get install libssl-dev创建证书:cd /etc/ssl/privatesudo openssl req -new -x509 -days 365 -sha1 -newkey rsa:1024 -nodes -keyout demo.key -out demo.crt参数说明:-x509 显示证书和签名工具-days 证书的有效期-sha1 证书加密算法 阅读全文
摘要:
1.根据Apache Log,获取当天秒并发数最多的记录tail -10000 ./demo.fdipzone.com_access_log.2014-01-16_01 | cut -d"[" -f 2 | awk '{print $1;}' | sort | uniq -c | sort -nr | headtail -10000 ./demo.fdipzone.com_access_log.2014-01-16_01 | awk -F"[" '{print $2;}' | awk '{print $1;} 阅读全文
摘要:
例如网关地址为:192.168.1.1route add default gw 192.168.1.1sudo vim /etc/resolv.conf在 /etc/resolv.conf 中加入# Generated by NetworkManagernameserver 192.168.1.1修改后可正常ping通,但系统重启后再ping会显示unknow host,因此需要锁定/etc/resolv.conf文件,不允许系统启动时重写。sudo chattr +i /etc/resolv.conf 阅读全文
摘要:
Apache Bench 是web性能测试工具,功能强大。但输出的结果只是数字形式,不容易看到数据的变化。因此,GnuPlot的强大绘制功能正好可以弥补Apache Bench这方面的不足。关于ApacheBench的安装与使用可以参考我之前写的《ubuntu中安装apache ab命令进行简单压力测试》GnuPlot 下载地址:http://www.gnuplot.info/download.htmlGnuPlot 文档地址:http://www.gnuplot.info/documentation.htmlGnuPlot的安装:tar zxvf gnuplot-4.6.4.tar.gzcd 阅读全文
摘要:
php 生成短网址原理:1.将原网址做crc32校验,得到校验码。2.使用sprintf('%u') 将校验码转为无符号数字。3.对无符号数字进行求余62操作(大小写字母+数字等于62位),得到余数后映射到62个字符中,将映射后的字符保存。(例如余数是10,则映射的字符是A,0-9对应0-9,10-35对应A-Z,36-61对应a-z)4.循环操作,直到数值为0。5.将所有映射后的字符拼接,就是短网址后的code。代码如下:/** 生成短网址* @param String $url 原网址* @return String*/function dwz($url){ $code = 阅读全文