php测试

史上最全人PHP数组排序函数大全

有时候,一个php函数就能省去我们大量的代码,在写程序的时候,如果能灵活运用这些函数,将大大节省时间,提高效率,下面总结的是php常用的数组排序函数,phper一定会用到的。

简单排序

首先,让我们来看看最简单的情况:将一个数组元素从低到高进行简单排序,这个函数既可以按数字大小排列也可以按字母顺序排列。PHP的sort()函数实现了这个功能,如Listing A所示:

Listing A

<?php
 $data
= array(5,8,1,7,2);

 sort($data);

 print_r($data);

Â
?>

输出结果如下所示:

Array ([0] => 1

[1] => 2

[2] => 5

[3] => 7

[4] => 8

)

也能使用rsort()函数进行排序,它的结果与前面所使用的sort()简单排序结果相反。Rsort()函数对数组元素进行从高到低的倒排,同样可以按数字大小排列也可以按字母顺序排列。Listing B给我们展示了它的一个例子:

Listing B

<?php
$data
= array(5,8,1,7,2);rsort($data); print_r($data);
?>

它的输出结果如下:

Array ([0] => 8

[1] => 7

[2] => 5

[3] => 2

[4] => 1

)

根据关键字排序

当我们使用数组的时候,经常根据关键字对数组重新排序,从高到低。Ksort()函数就是根据关键字进行排序的函数,同时,它在排序的过程中会保持关键字的相关性。Listing C就是一个例子:

Listing C


本文永久地址:http://drupalsh.cn/node/1813 , 转载请注明出处.

关于Drupal中的patch

博客很久没有更新了,最近头有点痛。青岛的夏天来了,今天好热。。

好像跑题了,言归正转。最近有个朋友问我Drupal中的patch是怎么回事,他说用drupal半年了,但是没有遇到过要用patch的情况,于是就很迷惑。drupalchina论坛里经常见到有人提到patch,但是patch究竟是怎么回事,下面就patch的来龙去脉,做一个简单的说明。

Patch,英文意思是补丁,它并不是drupal的产物,它是一个linux的命令,说起它,不得不提linux的另一个命令:diff.在数学领域,diff是用来对2个集合求差的,patch是求合,在linux命令中,diff用来比较二个文件的不同地方,比如你是一个项目管理者,你让手下给你修改一下模块,修改好交给你后,你想看看他改了什么地方,就可以用diff命令,格式为:diff [命令行选项] 原始文件 新文件

例如

[hahalee@builder]$ diff -u a.module b.module

diff的常用参数如下:

-r 递归处理目录  -u 输出统一格式(unified format)    -N patch里包含新文件 -a   patch里可以包含二进制文件


本文永久地址:http://drupalsh.cn/node/1095 , 转载请注明出处.

使用distinct在mysql中查询多条不重复记录值的解

在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是distinct只能返回它的目标字段,而无法返回其它字段,这个问题让我困扰了很久,用distinct不能解决的话,我只有用二重循环查询来解决,而这样对于一个数据量非常大的站来说,无疑是会直接影响到效率的。所以我花了很多时间来研究这个问题,网上也查不到解决方案,期间把容容拉来帮忙,结果是我们两人都郁闷了。。。。。。。。。

下面先来看看例子:

table
id name
1 a
2 b
3 c
4 c
5 b

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。

select distinct name from table
得到的结果是:

name
a
b
c

好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:

select distinct name, id from table

结果会是:

id name
1 a
2 b
3 c
4 c
5 b

distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被排除。。。。。。。

我们再改改查询语句:

select id, distinct name from table


本文永久地址:http://drupalsh.cn/node/417 , 转载请注明出处.

在drupal中开启SSL支持

在互联网中,"S" 是一个非常重要的字母。在互联网上的各种传输中,如果你非常关心你的数据的安全性,你对"S"一定不会陌生,比如,你会用

SFTP 而不是 FTP, 用 SSH 而不是 Telnet, 用 HTTPS 而不是 HTTP.所以,用drupal建的站中,如何开启SSH支持呢?

下面有四种解决方法,每种方法都各有利弊。你可以根据你的情况选择用不同的方法。

(注,下面所有的操作都假定你的WEB服务器已经支持SSH。如果你的WEB服务器还没有开启,请先Baidu一下如何开启)

用Drupal的加密模块(Securepages)加密登录页和admin管理页面

Secure Pages 是一个相当流行的模块。这个模块的作用是让drupal网站中的某个页面用

HTTPS。这个模块的优点是你可以有选择性的加密你认为重要的页面。它默认加密添加内容,编辑内容,任何与用户有关的页面和admin管理页面。

SSH相当耗费服务器资源。只有选择性的加密你认为非常重要的页面,这会大大降低服务器的负担。但是,session,cookie 仍然没有加密,这样,

假如一个用户在授权的HTTPS通过验证后,他再访问普通的HTTP页面,然后,黑客通过普通的HTTP页面盗取他的SESSION信息,登录我们的网站,这样就

可以取得我们认为非常机密的信息。这是一个很大的安全威胁。

优点: 相对于所有页面都用SSH加密,这种方法降低了服务器的负担。

缺点: 没有保护SESSION信息,数据仍有可能初盗.


本文永久地址:http://drupalsh.cn/node/345 , 转载请注明出处.

20个PHP库

下面是一些非常有用的PHP类库,相信一定可以为你的WEB开发提供更好和更为快速的方法。
图表库
下面的类库可以让你很简的创建复杂的图表和图片。当然,它们需要GD库的支持。

  1. pChart– 一个可以创建统计图的库。
  2. Libchart– 这也是一个简单的统计图库。
  3. JpGraph– 一个面向对象的图片创建类。
  4. Open Flash Chart– 这是一个基于Flash的统计图。

RSS 解析
解释RSS并是一件很单调的事情,不过幸好你有下面的类库可以帮助你方便地读取RSS的Feed。


本文永久地址:http://drupalsh.cn/node/331 , 转载请注明出处.

回调和事件

很多 Javascript 框架都提供了自定义事件(custom events),例如 jQuery、YUI 以及 Dojo 都支持“document ready”事件。而部分自定义事件是源自回调(callback)。
回调将多个事件句柄存储在数组中,当满足触发条件时,回调系统则会从数组中获取对应的句柄并执行。那么,这会有什么陷阱呢?在回答这个问题之前,我们先看下代码。
下面是两段代码依次绑定到 DOMContentLoaded 事件中

document.addEventListener("DOMContentLoaded", function() {
console.log("Init: 1");
DOES_NOT_EXIST++; // 这里会抛出异常
}, false);

document.addEventListener("DOMContentLoaded", function() {
console.log("Init: 2");
}, false);
那么运行这段代码会返回什么信息?显然,会看见这些(或者类似的):

Init: 1
Error: DOES_NOT_EXIST is not defined
Init: 2
可以看出,两段函数都被执行。即使第一个函数抛出了个异常,但并不影响第二段代码运行。
麻烦
OK,我们回来看下常见框架中的回调系统。首先,我们看下 jQuery 的(因为它很流行):


本文永久地址:http://drupalsh.cn/node/160 , 转载请注明出处.

使用google地图API获得经纬度(2)

description: 

在页面中加入jQuery内容获取google地图的信息

 


本文永久地址:http://drupalsh.cn/node/152 , 转载请注明出处.

批量导入XML数据到drupal系统

如果你想把其它网站的数据批量导入到drupal系统中,下面代码对你有可能适用。前提条件是,你要把原来网站的数据生成XML格式!

生成XML的工具有很多,有个叫 xml.class.php的类,可以试用一下,你也可以自己写PHP代码来实现。

生成XML文件后,通过这个模块,直接上传,就可以把它导入到drupal系统了。

该模块还可以对你导入的数据进行自动分类(Taxonomy整合)。

以下为该模块的部分精华源代码,欢迎发信问问题和提出各种修改建议。

如需要完整模块,请向站长索取。


本文永久地址:http://drupalsh.cn/node/148 , 转载请注明出处.
同步内容