PHP笔记网

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

作者:Albert.Wen  添加时间:2012-07-29 18:14:51  修改时间:2024-10-30 13:33:54  分类:11.PHP基础  编辑

PHP5.x 版本:

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

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

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

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

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

作者:Albert.Wen  添加时间:2012-07-28 10:45:47  修改时间:2024-11-19 18:53:53  分类:11.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);
}
作者:Albert.Wen  添加时间:2014-03-13 16:51:00  修改时间:2024-11-18 07:02:51  分类:11.PHP基础  编辑

需要注意的是如果采用GET方式,那么action url中参数都会被丢弃,提交时候只会把form中的数据拼接在url向服务器提交;但是POST的方式则不会这样,它会按照action指定的url进行提交数据,包含url后面跟着的参数和参数值。

作者:Albert.Wen  添加时间:2012-07-21 01:37:56  修改时间:2024-10-30 11:37:49  分类:11.PHP基础  编辑

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

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

作者:Albert.Wen  添加时间:2012-07-15 16:00:11  修改时间:2024-11-14 17:29:09  分类:11.PHP基础  编辑

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

作者:Albert.Wen  添加时间:2012-07-15 01:51:59  修改时间:2024-11-17 00:17:13  分类:11.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,使用代理进行抓取

作者:Albert.Wen  添加时间:2012-07-13 23:06:37  修改时间:2024-10-30 13:35:11  分类:11.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服务器等等,功能十分强大。

作者:Albert.Wen  添加时间:2012-07-12 21:08:00  修改时间:2024-11-23 14:49:06  分类:11.PHP基础  编辑

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

作者:Albert.Wen  添加时间:2012-07-12 20:08:16  修改时间:2024-10-30 13:34:03  分类:11.PHP基础  编辑
<?php
// 1. 初始化
$ch = curl_init();

// 2. 设置选项,包括URL
curl_setopt($ch, CURLOPT_URL, "");
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内容…使用正则表达式匹配出你需要的内容。

作者:Albert.Wen  添加时间:2012-07-12 19:52:01  修改时间:2024-11-21 19:01:03  分类:11.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