对二维数组的某一字段求和

1
2
3
4
5
方法一:  
array_sum(array_map(create_function('$val', 'return $val["size"];'), $arr));

方法二:
array_sum(array_map(function($val){return $val['size'];}, $arr));

对于windows系统,这两种方法均可用。

对于Linux系统,只有方法一可用,如果是方法二的话,会报错:Fatal error: Invalid opcode 153/1/8. in … …

此外还有一点要注意,对于Linux系统,代码中的url是区分大小写的,如果真实路径是/ABC/index.php,当代码中的$url=”/abc/index.php”的话,在windows中可以正常运行,但是Linux中则会报404错误。

script脚本中写不写$(document).ready(function(){});的区别

$(document).ready() 里的代码是在页面内容都加载完才执行的,如果把代码直接写到script标签里,当页面加载完这个script标签就会执行里边的代码了,此时如果你标签里执行的代码调用了当前还没加载过来的代码或者dom,那么就会报错,当然如果你把script标签放到页面最后面那么就没问题了,此时和ready效果一样。

$(document).ready(function(){})可以简写成$(function(){});

Read More

mysql查看各个表的大小

information_schema 数据库,在该库中有一个 TABLES 表,这个表主要字段分别是:

TABLE_SCHEMA : 数据库名
TABLE_NAME:表名
ENGINE:所使用的存储引擎
TABLES_ROWS:记录数
DATA_LENGTH:数据大小
INDEX_LENGTH:索引大小

select table_schema,table_name,table_rows from tables order by table_rows desc;

如何避免页面刷新导致数据重复写入数据库

当表单的数据是提交给本页面处理并写入数据库时,点提交后,刷新页面的话使数据重复写入数据库。解决方案有如下几种:

一、把一页面分开为两个,数据提交给另一个页面处理,之后再跳转到输入页面。

总的说来,这是一种不错的解决方案。但是要防止用户使用浏览器的返回按钮返回上一页,然后再刷新页面,重复插入数据。

1
2
3
4
if (isset($_POST['action']) && $_POST['action'] == 'submitted') {  
// 处理数据,如插入数据后,立即转向到其他页面
header('location:submits_success.php'); //效果与JSP里面的sendRedirect类似
}

二、在数据入库之前执行一次验证查询,看数据库里是否已经存在了相同的记录,由此来决定是否写入数据。

Read More

Linux安装PHP加速器Xcache

XCache 是一个又快又稳定的 PHP opcoolcode 缓存器. 经过良好的测试并在大流量/高负载的生产机器上稳定运行. 经过(在linux 上)测试并支持所有现行 PHP 分支的最新发布版本, 如 PHP_4_3 PHP_4_4 PHP_5_0 PHP_5_1 PHP_5_2 HEAD(6.x), 并支持线程安全/Windows. 与同类 opcoolcode 缓存器相比更胜一筹, 比如能够快速跟进 PHP 版本.下面介绍如何安装配置。
1、安装xcache
wget http://xcache.lighttpd.net/pub/Releases/1.3.2/xcache-1.3.2.tar.gz
tar -zxvf xcache-1.3.2.tar.gz
cd xcache-1.3.2
phpize
./configure –enable-xcache
make
make install www.2cto.com

Read More