不灭的焱

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

作者:php-note.com  发布于:2012-07-30 17:48  分类:PHP库/系统/微信  编辑

在ThinkPHP框架中,物理路径的定义,除了“APP_PATH”与“THINK_PATH”末尾没有“路径分隔符”外,其他的物理路径定义末尾都有“路径分隔符”

因此,在定义物理路径时,末尾统一加上“路径分隔符”!!!(当然,“APP_PATH”与“THINK_PATH”除外!!!)

作者:php-note.com  发布于:2012-07-29 18:14  分类:PHP基础  编辑

PHP5.x 版本:

PHP5.0 以上版本对类的功能进行了很大的扩充。类的构造函数统一命名为__construct()。

子类的构造函数名也是__construct()(也是废话)。

在子类里父类的构造函数会不会执行,分两种情况:

1、如子类不定义构造函数 __construct(),则父类的构造函数默认会被继承下来,且会自动执行。

2、如子类定义了构造函数 __construct(),因为构造函数名也是__construct(),所以子类的构造函数实际上是覆盖(override)了父类的构造函数。这时执行的是该子类的构造函数。

作者:php-note.com  发布于:2012-07-28 10:45  分类:PHP基础  编辑
/** 模拟JS里的unescape
 *
 * @param unknown_type $str
 */
function unescape($str, $charset = 'utf-8') {
	$str = rawurldecode($str);
	preg_match_all("/(?:%u.{4})|.{4};|&#d+;|.+/U", $str, $r);
	$ar = $r[0];
	foreach ($ar as $k => $v) {
		if (substr($v,0,2) == "%u")
			$ar[$k] = iconv("UCS-2", $charset, pack("H4",substr($v,-4)));
		elseif (substr($v, 0, 3) == "")
			$ar[$k] = iconv("UCS-2", $charset, pack("H4", substr($v, 3, -1)));
		elseif (substr($v,0,2) == "&#") {
			echo substr($v,2,-1) . "";
			$ar[$k] = iconv("UCS-2", $charset, pack("n", substr($v, 2, -1)));
		}
	}

	return join("", $ar);
}
作者:php-note.com  发布于:2012-07-24 15:09  分类:PHP库/系统/微信  编辑

设置cookie:

$cookie = new CHttpCookie('mycookie','this is my cookie');
$cookie->expire = time()+60*60*24*30;   //有限期30天
Yii::app()->request->cookies['mycookie']=$cookie;
作者:php-note.com  发布于:2012-07-24 10:12  分类:HTML/CSS/JS  编辑

JavaScript的简单类型包括 数字、字符串、布尔值、null值、undefined值。

其他的值都是对象。对象是可变的键控集合。数组、函数、正则表达式都是对象。

对象是属性的容器,属性都是名字和值对。名字可以是包括空字符串在内的全部字符串。值可以是除了undefined之外的任何值。

作者:php-note.com  发布于:2012-07-21 18:25  分类:HTML/CSS/JS  编辑

在我们前端开发的日常工作中,发现服务器上某个css/javascript文件有问题,需要修改,那真是家常便饭。通常,我们需要将文件进行修改,然后重新发布再验证,这样就很容易影响到生产环境的稳定性。更普遍的做法是,我们在开发环境中修改文件并验证,然后发布到生产环境。虽然安全,却比较繁琐。而利用Fiddler的可以修改HTTP数据的特性,我们就非常敏捷地基于生产环境修改并验证,确认后再发布。

作者:php-note.com  发布于:2012-07-21 01:37  分类:PHP基础  编辑

先了解一下普通cgi的工作流程:

web server收到用户请求,并把请求提交给cgi程序,cgi程序根据请求提交的参数作相应处理,然后输出标准的html语句返回给web server,web server再返回给客户端,这就是普通cgi的工作原理。

作者:php-note.com  发布于:2012-07-21 00:29  分类:HTML/CSS/JS  编辑
通过js从父页面获取子页面的值

通常在很多情况下都会遇到通过js来传值的问题,只要通过一些页面关联,他们的值就可以互相传递,其中应用框架的时候传值问题可能会遇到更多一些

1、从父页面传值到子页面可能很容易办到,在很多情况下可以不通过js来传就可以达到目的,但从子页面把数据传给父页面就不是那么容易了,其实思路很简单,首先你要通过父页面找到子页面,按照W3C标准来,语法如下:
document.getElementById('iframe1').contentWindow;
取到子页面对象
作者:php-note.com  发布于:2012-07-20 23:17  分类:HTML/CSS/JS  编辑

经常有人会在JavaScript里写如下的方法:

function checkType() {
	var s1 = 123;
	var s2 = "OK";
	if (s1 instanceof Number) {
		alert("s1 is a number.");
	}
	if (s2 instanceof String) {
		alert("s2 is a String.");
	}
}

问题在哪里呢?

首先我们要理解,JS里,var本身是一个泛型,它并不是Number,也不是String,更不是其他的类。

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

ThinkPHP3.0 系统常量汇总

1.预定义常量

这些预定义常量不会随着环境的变化而变化。    

2.路径常量

系统和项目的路径常量用于系统默认的目录规范,可以通过重新定义改变,如果不希望定制目录,这些常量一般不需要更改。    

作者:php-note.com  发布于:2012-07-15 16:00  分类:PHP基础  编辑

CURL 是 Client URL Library Functions 的缩写,由 Daniel Stenberg 创建,更多内容可以参考他的网站。最近几天突然对 HTTP 采集有了兴趣。之前我在做这方面程序,一般通过两种方法,一个是利用 PHP 自身的文件操作函数。PHP 的 fopen,readfile ,file_get_contents都是可以支持 http 协议的,这样可以很方便的获取互联网上的内容。另一种方法是通过 PHP 的 Socket 函数,这个方法的好处是对各种协议都可以支持,缺点是使用起来比较麻烦,要对协议有一定的了解。在 HTTP 获取方面,运用 Socket 的 Snoopy 类是一个非常好用的 PHP  HTTP 客户端,也是我原来最常用的方法。

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

我用php ,curl主要是抓取数据,当然我们可以用其他的方法来抓取,比如fsockopen,file_get_contents等。但是只能抓那些能直接访问的页面,如果要抓取有页面访问控制的页面,或者是登录以后的页面就比较困难了。

1,抓取无访问控制文件

<?php
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, "http://localhost/mytest/phpinfo.php");
 curl_setopt($ch, CURLOPT_HEADER, false);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果把这行注释掉的话,就会直接输出
 $result=curl_exec($ch);
 curl_close($ch);
 ?>

2,使用代理进行抓取

作者:php-note.com  发布于:2012-07-13 23:06  分类:PHP基础  编辑

CURL(Client URL Library Functions)是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER,  TELNET, DICT, FILE 以及 LDAP。CURL同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法,FTP 上传, kerberos认证,HTTP上传, 代理服务器, cookies, 用户名/密码认证,下载文件断点续传,上载文件断点续传, http代理服务器管道( proxy tunneling),甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。

作者:php-note.com  发布于:2012-07-12 21:08  分类:PHP基础  编辑

Piwik是一套基于Php+能够与Google Analytics相媲美的开源网站访问统计系统,浏览人数, 访问最多的页面, 搜索引擎关键词等等,并且采用了大量的AJAX/Flash技术,使得在操作上更加便易。此外,它还采用了插件扩展及开放API架构,可以让开发人员根据 自已的实际需求创建更多的功能。

作者:php-note.com  发布于:2012-07-12 20:08  分类:PHP基础  编辑
<?php
// 1. 初始化
$ch = curl_init();

// 2. 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "http://www.php-note.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);

// 3. 执行并获取HTML文档内容
$output = curl_exec($ch);

// 4. 释放curl句柄
curl_close($ch);
?>

curl_setopt中的 CURLOPT_URL, CURLOPT_RETURNTRANSFER 等参数,请参考php文档手册,里面有详细说明!
现在得到$output内容…使用正则表达式匹配出你需要的内容。

作者:php-note.com  发布于:2012-07-12 19:52  分类:PHP基础  编辑

PHP.ini 里有个 disable_functions 开关选项,此选项可关闭一些危险的函数,比如system,exec 等。比如: disable_functions = phpinfo , 如果在文件中调用 phpinfo() 函数,那么在 error_reporting 开启的情况下,会提示如下错误:

Warning: phpinfo() has been disabled for security reasons

屏蔽函数实例:

disable_functions= phpinfo,dl, exec, system
作者:php-note.com  发布于:2012-07-12 19:44  分类:PHP基础  编辑

匹配特定数字:

^[1-9]\d*$    //匹配正整数

^-[1-9]\d*$   //匹配负整数

^-?[1-9]\d*$   //匹配整数

^[1-9]\d*|0$  //匹配非负整数(正整数 + 0)

^-[1-9]\d*|0$   //匹配非正整数(负整数 + 0)

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //匹配正浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //匹配负浮点数

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //匹配浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //匹配非负浮点数(正浮点数 + 0)

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //匹配非正浮点数(负浮点数 + 0)

评注:处理大量数据时有用,具体应用时注意修正

 

作者:php-note.com  发布于:2012-07-10 23:41  分类:Linux软件安装/优化  编辑

在Macbook上做如下设置:

1.打开 “系统偏好设置(System Preferences)” -> “共享( Share)” 对话框,在左侧列表中的 “文件共享(File Sharing)” 之前打勾;

2.点击该对话框中的 “(选项)Options” 按钮;

3.在随后出线的对话框中的 “用FTP的方式共享文件夹(Share files and folders using FTP)” 之前打勾;

作者:php-note.com  发布于:2012-07-09 16:14  分类:电脑/软件使用  编辑

Fiddler的工作原理

Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的 程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

作者:php-note.com  发布于:2012-07-09 10:40  分类:Linux软件安装/优化  编辑

一般情况下,安装的都是最新的正式版,除非你有特殊需求,要安装指定的版本,本文暂不讨论。从最基础的开始,一点点完成一个可用的 Linux 主机。这里就开始介绍如何在 CentOS 6.0 上安装 LAMP 组件。经过如下语句安装,目前安装到的版本为: