不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2015-07-24 11:30  分类:HTML/CSS/JS  编辑

1、JS中的splice方法

splice(index, len, [item])    //注意:该方法会改变原始数组。

splice有3个参数,它也可以用来替换/删除/添加数组内某一个或者几个值。

index:数组开始下标;

len:替换/删除的长度;

item:替换的值,删除操作的话 item为空;

作者:php-note.com  发布于:2015-07-17 21:27  分类:HTML/CSS/JS  编辑

项目中,用到百度ueditor编辑器,发现,上传大一点的图片,图片会失真,刚开始还以为是PHP端做了图片压缩,仔细看配置说明,发现是编辑器自带有个自动压缩图片的功能,可恶的是,压缩后的图片失真了!

决定去掉这个压缩功能,如果非得要压缩,那就交给服务端PHP来处理吧!

找到配置文件:ueditor/php/config.json

把 imageCompressEnable 设置为 false 即可!

作者:php-note.com  发布于:2015-07-09 15:53  分类:PHP基础  编辑

当我们使用传统的 mysql_connect 、mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制。虽然可以用mysql_real_escape_string()函数过滤用户提交的值,但是也有缺陷。而使用PHP的PDO扩展的 prepare 方法,就可以避免 sql injection 风险。

作者:php-note.com  发布于:2015-07-09 12:48  分类:系统设计/架构  编辑

一般一个大规模Linux服务器请求数可能是几十万上百万的情况,需要足够的连接数来使用,所以务必进行相应的设置。

默认的Linux服务器文件描述符等打开最大是1024,用 ulimit -a 查看:

[viewuser@~]$ ulimit -a
core file size          (blocks, -c) 0   #coredump 文件大小
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 255622
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024   #打开文件数量,root账户无限制
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096   #root用户本项是无限
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

如果超过了连接数量,可以在 /var/log/message 里面看到类似:

May 14 16:13:52 hostname kernel: nf_conntrack: table full, dropping packet

的信息,基本可以判定是fd不够用引起的。(服务器受到攻击也会有这个信息)

作者:php-note.com  发布于:2015-07-08 23:20  分类:PHP库/系统/微信  编辑

项目中引进了ThinkPHP3.2.3的模型层,发现当SQL语句出错时,系统抛出的异常不是我想要的效果,打开文件 ThinkPHP\Library\Think\Db\Driver.class.php

找到代码:

$result = $this->PDOStatement->execute(); 

当上述PDO语句有异常时(如 SQL语句中数据表不存在),此处就会直接抛出PHP异常,后面的代码不会被执行,页面被中断,这不是我们想要的结果;

作者:php-note.com  发布于:2015-07-08 22:04  分类:PHP基础  编辑

PDO 提供了三种不同的错误处理模式,以满足不同风格的应用开发:

PDO::ERRMODE_SILENT

此为默认模式。 PDO 将只简单地设置错误码,可使用 PDO::errorCode() 和 PDO::errorInfo() 方法来检查语句和数据库对象。如果错误是由于对语句对象的调用而产生的,那么可以调用那个对象的 PDOStatement::errorCode() 或PDOStatement::errorInfo() 方法。如果错误是由于调用数据库对象而产生的,那么可以在数据库对象上调用上述两个方法。

作者:php-note.com  发布于:2015-07-08 20:41  分类:电脑/软件使用  编辑

设置 -> WLAN -> 右下角菜单“高级” -> 高级 WLAN 设置 -> 去掉勾选“WLAN优化

作者:php-note.com  发布于:2015-07-07 12:40  分类:电脑/软件使用  编辑

PhpStorm是我最喜欢的PHP开发工具,也偶尔用下Clion,Idea 等Jetbrains其他产品,但问题来了,需要注册码,如何破解?

好在,有高手已经研究出破解的方法,并将代码开源公布在Github上,破解过程如下:

1、安装Java运行环境(注意:至少 Java 7),安装过程自己百度一下;

2、下载项目/工具 https://github.com/rover12421/JetbrainsPatchKeygen 到本地,解压;

作者:php-note.com  发布于:2015-07-06 15:51  分类:PHP基础  编辑

PDO是啥

PDO(PHP Data Object)是PHP5新加入的一个重大功能,因为在PHP5以前的PHP4/PHP3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dllphp_pgsql.dllphp_mssql.dllphp_sqlite.dll等等扩展来连接MySQLPostgreSQLMS SQL ServerSQLite,同样的,我们必须借助 ADOdbPEAR::DBPHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,PHP代码的效率怎么能够比我们直接用C/C++写的扩展斜率高捏?所以嘛,PDO的出现是必然的,大家要平静学习的心态去接受使用,也许你会发现能够减少你不少功夫哦。

作者:php-note.com  发布于:2015-07-06 15:42  分类:PHP库/系统/微信  编辑

找到文件:ThinkPHP\Library\Think\Db\Driver.class.php

找到代码:

// PDO连接参数
protected $options = array(
	PDO::ATTR_CASE => PDO::CASE_LOWER, // 改为 PDO::CASE_NATURAL
	PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
	PDO::ATTR_ORACLE_NULLS => PDO::NULL_NATURAL,
	PDO::ATTR_STRINGIFY_FETCHES => false,
);

把其中的 PDO::CASE_LOWER 改为 PDO::CASE_NATURAL

作者:php-note.com  发布于:2015-07-06 12:36  分类:PHP基础  编辑
if (!empty (get_gpc('userId'))) {
	$userId = get_gpc('userId');
} else {
	$error = "ID doesn't exist";
}

报错:

Fatal error: Can't use method return value in write context in (line number)

作者:php-note.com  发布于:2015-07-02 21:36  分类:HTML/CSS/JS  编辑

<a href="tel:18688888888">拨号</a>

<a href="sms:18688888888">发短信</a>