11
2015-03

PHP中引用和引用传递以及赋值的解释

 1. PHP中引用的特性
首 先,PHP中的引用不是C的指针,可以把它想象成UNIX文件系统中对文件的链接,是变量的另外一个别名或者映射。
例如:$b = &$a中,$b和$a都只是一个变量名称,此操作使$b和$a都映射到同一个变量内容;$a 和 $b 在这里是完全相同的,这并不是 $a 指向了 $b 或者相反,而是 $a 和 $b 指向了同一个地方。
$b = &$c则是让$b重新映射到另外一个变量内容,与$a再无关系;
unset($a)只是断开了$a到变量内容的映射,但变量内容并没有被释放,依然可以使用$b来访问,一旦$b也unset了,那么该变量内容在没有任何映射的情况下会被释放。

22
2014-08

php下单元化测试phpunit的安装于使用

1、下载: http://pear.php.net/go-pear.phar
2、命令行下,在php目录下运行php go-pear.phar
3、更改php.ini中include_path的路径:

10
2014-07

PHP 观察者模式 PHP SplSubject SplObserver 接口实现

       最近在看一些PHP观察者模式的东西,因为要做的一个项目需要用到观察者模式,那么什么是观察者模式呢,如何使用观察者模式呢?

       其实观察者模式这是一种较为容易去理解的一种模式吧,它是一种事件系统,意味着这一模式允许某个类观察另一个类的状态,当被观察的类状态发生改变的时候,观察类可以收到通知并且做出相应的动作。比如键盘,我一敲击,系统就收到通知并进行相应的回应。对于PHP来说,PHP内置提供了两个接口来供外部应用区实现这个模式。SplSubject 接口,它代表着被观察的对象,其结构如下:

10
2014-07

php匿名函数及JS相关

PHP自5.3版本之后开始支持匿名函数,今天听到别人说了,就上网查了一下,然后写了一个小例子,代码如下:

<?php
//匿名函数
$fun=create_function('','echo 123;');
echo $fun;//lambda_1,没刷新一次,可以让后面的数字自增
echo '<br/>';
$fun();// 123
?>
26
2014-05

PHP mysql函数及其Mysqli函数代替用法

由于MySQL扩展从php 5.5开始弃用,所以以后不推荐大家再用MySQL扩展,请用MySQLi或PDO代替,以下是MySQL对应的MySQLi函数(绿色字体)供大家参考。(注:PHP手册上的有误,这里是最准的)
MySQL>>(从PHP 5.5开始弃用)
mysql_affected_rows — (mysqli_affected_rows())取得前一次 MySQL 操作所影响的记录行数
mysql_client_encoding — (mysqli_character_set_name())返回字符集的名称(返回当前连接的默认字符集名称。)
mysql_close — (mysqli_close())关闭 MySQL 连接
mysql_connect — (mysqli_connect())打开一个到 MySQL 服务器的连接

28
2014-03

PHP如何把十六进制的编码转义为汉字并取出其中的某一字段

       今天在做公司的项目的时候,遇到一个问题,群聊天记录存入数据库的时候把聊天记录及央视使用16进制转换,我在做将聊天记录导出为text文本的时候,需要将聊天记录先从16进制转换为普通的Unicode编码记录,然后在从中取出所需要导出的message信息,不多说了,代码如下,以下代码属于线下的,线上的就不透漏了:

<?php
/*将16进制编码转换为汉字*/
function hexDecode($s) {
    return preg_replace('/(\w{2})/e',"chr(hexdec('\\1'))",$s);
}
20
2014-02

php如何解决多线程读取一个文件的问题

昨天奔波了天去面试,做了三家公司的面试题,有些题目还是蛮有难度的,比如:php如何解决多线程读取一个文件的问题,然后就自己上网搜索了一下,就把代码分享一下吧,供那些面试求职的人使用。

<?php
$fp = fopen("lock.txt", "w+");//本地测试文件加下的txt文件,为了测试,可以为空或者写入一些东西
if (flock($fp, LOCK_EX)) { // 进行排它型锁定
    fwrite($fp, "Write something here\n");
    flock($fp, LOCK_UN); // 释放锁定
    echo 123;
} 
19
2013-12

discuz6.1论坛活动php数据调用代码

做过的一个活动,自己写了代码,现在需要调用数据,把循环嵌套好好地用了,就写在这里了,以备不时之需。

<?php
//调用核心文件
require "function_webench.php";
require "../include/common.inc.php";
header('content-type:text/html; charset=gbk;');
if($act=='list') {
    $query=$db->query("select bbsid,count(bbsid) as nn,count(distinct time) as num from `cdb_webench20131115` group by bbsid order by num desc");
    echo '<p>每个人上传了多少作品</p><TABLE cellpadding="0" cellspacing="0" border="1"><TR><TD width=100 align=right>bbsid</TD><TD width=50 align=right>num</TD><TD width=50 align=right>重复</TD></TR>';
    while($res=$db->fetch_array($query)) {
        if($res['num']>=20) {
        echo '<TR><TD align=right>'.$res['bbsid'].'</TD><TD align=right>'.$res['num'].'</TD><TD align=right>'.$res['nn'].'</TD></TR>';
        $number++;
                }
    }
    echo '</TABLE>';
    echo $number;
}
29
2013-05

可以根据IP来判断IP归属地的php代码

我们在开发程序的时候,有时候客户户要求根据用户访问网页的IP来判断用户的所在地,我这里有一个小程序,可以发散思维利用一下。

首先,我们要建立一个php文件,代码如下:

20
2013-05

如何将php的数组存放在数据库中?如何将数组转换成字符串?serialize

有的时候,需要将php的数组中的数据,存放在数据库中。但是数据库是不支持直接存放数组类型的数据的,但是可以存放字符串类型的数据。所以我们可以将数组转换成字符串,然后再存入数据库。
如何将数组转换成字符串?使用php的serialize函数。
例子:

$data = array('上海', '北京', '武汉');
$data = serialize($data);
echo $data;

如何再将从数据库中取出的数组字符串,转换成数组呢?用unserialize函数:

20
2013-05

使用Linux的crontab调用php程序,以定时生成静态页面

mkdir /server/script
vi /server/script/php.sh
内容:
/server/soft/php5/bin/php -q /server/www/xingmo/_script/index.php

26
2013-04

appserv中进行多域名绑定配置(appserv是一个集成的PHP运行环境)

本文配置环境:windows xp,appserv 2.5.10
本文适用于本地电脑进行网站开发测试,需要配置多个域名进行访问。
1、修改hosts文件
首先,用记事本或相关软件打开C:Windows\System32\drivers\etc\hosts文件,在最后添加如下行(一个域名对应一行,可加多行),保存退出。
127.0.0.1 shiyayong.cn
127.0.0.1 nanmo1.com

15
2013-04

php抓取函数file_get_contents()和curl()

file_get_contents和curl函数用法
想做山寨搜索引擎的朋友别错过了哦!
PHP采集(小偷)程序必用的函数,用于远程获取页面的源代码,然后再经过正则处理,获取需要采集的 内容……更为详细的,请查询PHP手册:
file_get_contents ()应用很简单,但是有的服务器php.ini设置如果关闭allow_url_fopen,这个函数就失效了,一般个人服务器可以设置,但是如果是虚拟 主机就不在自己掌控范围内了。但是curl 是另外一个打开远程页面的内容的函数用法如下:
以下为引用的 内容:

10
2013-04

常用Sql类、分页类Sql.class.php

<?php
/**
*名称:Sql.class.php
**/
class Sql