PHP

php源码加密

第一种:

<?php
function encode_file_contents($filename) {
$type=strtolower(substr(strrchr($filename,'.'),1));
if('php'==$type && is_file($filename) && is_writable($filename)){// 如果是PHP文件 并且可写 则进行压缩编码
$contents = file_get_contents($filename);// 判断文件是否已经被编码处理
$contents = php_strip_whitespace($filename);
// 去除PHP头部和尾部标识…

分析php文件的编码问题

原文: http://hi.baidu.com/cuttinger/blog/item/c8e44623e3c9e4499822edff.html


概述:分析php引擎是如何处理不同编码的php脚本的,并通过构造一个GBK的php脚本,诱发了php引擎处理php脚本时产生错误,证实了前面的分析。

1。背景

php有个看起来很平常的特性,就是php文件中的字符串,打印出来的时候,并不改变字符串的编码。…

    

php中heredoc模板引擎方法小结

Heredoc技术,也叫字符串输出技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。之前在研究PW模板中经常发现,但一直不明白原理,其实这就是一种大量字符串输出的技术,这种技术不仅能大量输出字符串,而且还能实现了界面与代码的准分离,phpwind模板就是巧妙了使用这种技术,一个典型的例子!
举个简单的例子:…

    

php随机函数

php随机函数

gmp_random — 产生一个随机数
lcg_value — 组合线性同余发生器(返回范围为 (0, 1) 的一个伪随机数)
mt_rand — 生成更好的随机数(最大值2147483647)
rand — 产生一个随机整数(最好用mt_rand代替)(win下默认最大值32767,最大值2147483647)
str_shuffle — 随机打乱一个字符串
array_rand — 从数组中随机取出一个或多个单元
shuffle — 将数组打乱…

    

php连接MySQL数据库代码(原创)

<?php
//MySQL连接数据库
function db_connmysql($dbpassword,$dbdatabase,$dbhost='localhost',$dbname='root',$dbcharset='UTF8'){
$link = mysql_connect($dbhost, $dbname, $dbpassword) or die(mysql_error());
$dbVersion = mysql_get_server_info($link);
//设置字符集
mysql_set_charset($dbcharset,$link);
//mysql_query("SET NAMES gb2312", $link);此方式不推荐;
//设置 sql_model
if($dbVersion >'5.0.1'){
mysql_query("SET sql_mode=''",$link);
mysql_query("SET character_set_connection=".$dbcharset.", character_set_results=".$dbcharset.", character_set_client=binary", $link);// 防止宽字节注入
}
//选择数据库
mysql_select_db($dbdatabase, $link);
//mysql_close($link);

}

//db_connmysql('password','test');
        

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 服务器的连接
mysql_create_db — (mysqli_query() then CREATE DATABASE新建一个 MySQL 数据库(…

        

PHP面向对象的链式调用方式实现

在ZF里面经常有和jQuery类似的链式的结构代码。

 

$("p").css("color").addClass("selected");//jQuery//比如这样jQuery可以连着使用2个方法。在ZF中也有发现类似的链式$this->_plugins ->setRequest($this->_request) ->setResponse($this->_response);

 

于是就跟进了函数,发现实现起来也还蛮简单的。只需要在每个方法最后返回$this.

下面是我写的一个例子。…