用PHP实现简单的数据抓取
方法一:
<?php
$urlstr = file_get_contents("http://www.baidu.com");
$urlstr = htmlspecialchars($urlstr);
print_r($urlstr);
?>
方法二:(需要打开curl扩展)
注意:打开curl扩展时,一定要看看php加载php.ini文件的路径,通过phpinfo()函数就可以看到php挂载的php.ini文件路径。
<?php
//初始化curl
$ch = curl_init() or die (curl_error());
curl_setopt($ch,CURLOPT_URL,"http://www.baidu.com/s?wd=php"); //要求CURL返回数据
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); //执行请求
$result = curl_exec($ch) or die (curl_error()); //取得返回的结果,并显示
//echo $result;
$result = htmlspecialchars($result);
print_r($result);
curl_close($ch);
?>
得到页面静态源代码后,就可以通过正则帅选你想要的结果,很方便。 ......
2008 年 11 月 17 日
如果您尚未打算用 OO 原则创建应用程序,则使用 PHP 的面向对象(OO)的语言特性,这 7 个习惯将帮助您开始在过程编程与 OO 编程之间进行转换。
在 PHP 编程早期,PHP 代码在本质上是限于面向过程的。过程代码 的特征在于使用过程构建应用程序块。过程通过允许过程之间的调用提供某种程度的重用。
但是,没有面向对象的语言构造,程序员仍然可以把 OO 特性引入到 PHP 代码中。这样做有点困难并且会使代码难于阅读,因为它是混合范例(含有伪 OO 设计的过程语言)。使用 PHP 代码中的 OO 构造 — 例如能够定义和使用类、能够构建使用继承的类之间的关系以及能够定义接口 — 可以更轻松地构建符合优秀 OO 实践的代码。
虽然没有过多模块化的纯过程设计运行得很好,但是 OO 设计的优点表现在维护上。由于典型应用程序的大部分生命周期都花费在维护上,因此代码维护是应用程序生命周期的重要部分。并且在开发过程中代码维护很容易被遗忘。如果在应用程序开发和部署方面存在竞争,那么长期可维护性可能被放在比较次要的地位。
模块化 — 优秀 OO 设计的主要特性之一 — 可以帮助完成这样的维护。模块化将帮助封装更改,这样可以随着� ......
2008 年 12 月 29 日
像其他语言一样,开发人员可以用 PHP 编写出各种质量级别的代码。学习良好的编程习惯能够提高代码质量和效率。
根据具体的情况,一般的开发人员往往比优秀的开发人员的效率低 10%~20%。优秀的开发人员的效率更高,因为他们拥有丰富的经验和良好的编程习惯。不良的编程习惯将会影响到效率。本文通过展示一些良好的编程习惯,帮助您成为更优秀的程序员。
这些良好的编程习惯不仅能提高效率,还能让您编写出在应用程序的整个生命周期中易于维护的代码。编写出来的代码可能需要大量的维护;应用程序的维护是一笔很大的开支。养成良好的编程习惯能够提高设计质量(比如模块化),从而使代码更加容易理解,因此维护就更加容易,同时也降低维护成本。
不良的编程习惯会造成代码缺陷,使其难以维护和修改,并且很可能在修改时又引入其他缺陷。以下是 5 个良好的编程习惯,能够帮助 PHP 代码避免这些缺陷:
使用良好的命名。
分成更小的部分。
为代码添加注释。
处理错误条件。
切忌使用复制粘贴。
下一小节将详细介绍这些习惯。
使用良好的命名
使用良好的命名是最重要的编程习惯,因为描述性强的名称让代码更加容易阅读和理解。代码是否好理解� ......
【1】页面之间无法传递变量 get,post,session在最新的php版本中自动全局变量是关闭的,所以要从上一页面取得提
交过来得变量要使用$_GET['foo'],$_POST['foo'],$_SESSION['foo']来得到。当然也可以修改自动全局变量为开
(php.ini改为register_globals = On);考虑到兼容性,还是强迫自己熟悉新的写法比较好。
【2】Win32下apache2 用get方法传递中文参数会出错:
test.php?a=你好&b=你也好
传递参数是会导致一个内部错误
解决办法:"test.php?a=".urlencode(你好)."&b=".urlencode(你也好)
.............
【3】win32下的session不能正常工作
php.ini默认的session.save_path = /tmp
这显然是linux下的配置,win32下php无法读写session文件导致session无法使用,把它改成一个绝对路径就可以
了,例如session.save_path = c:windows emp
【4】显示错误信息
当php.ini的display_errors = On并且error_reporting = E_ALL时,将显示所有的错误和提示,调试的时候最好
打开以便纠错,如果你用以前php写法错误信息多半是关于未定义变量的。变量在赋值以前调用会有提示,解决办法是
探测或者屏蔽。
......
整理一篇比较详细的windows下php运行环境的配置的资料,包括apache的安装、mysql的安装、php的安装、 ZendOptimizer 的安装、phpMyAdmin的安装,包括安装过程会出现的问题的解决,比如:phpMyAdmin数据库中文乱码的解决等。
//****************
1、软件
(1)apache_2.2.4-win32-x86-no_ssl.zip
(2)mysql-5.0.27-win32.zip
(3)php-5.2.0-Win32.zip
(4)ZendOptimizer-3.2.6-Windows-i386.zip
(5)phpMyAdmin-2.10.2-rc1-all-languages.zip
下载:http://down.phpv.net/sort/7_1.htm
//****************
2、Apache 的安装
(1) 点击apahce安装包
(2) 接受协议
(3) 下面3项随便填即可
apache 监听80 端口.如果iis用了80端口,修改iis端口或者apache端口,以免冲突
(4) 这里默认的是 typical,点击next.
(5) 这里可用修改安装路径,注意安装路径不能含中文.
(6) 点击install开始安装
(7) 安装完成后在浏览器里打入 http://localhost 或者 http://127.0.0.1
如果可以看到这个页面,证明apache安装成功,已经可以解释静态页面了
//****************
3、MySQL 的安装
(1)点击MySQL安装包
(2) 默认是Typical,如果想修改安装路径的话也可以选择custom.
注意:安装mysql的� ......
推荐小巧的 PHP 框架
CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为 PHP 程序员建立功能完善的 Web 应用程序。如果你是一个使用共享主机,并且为客户所要求的期限而烦恼的开发人员,如果你已经厌倦了那些傻大笨粗的框架.
里面包含了日常所需要的类库,代码精简。很适合日常开发哦!
类库参考
基准测试类
日历类
购物车类
配置类
数据库类
Email 类
加密类
文件上传类
表单验证类
FTP 类
HTML 表格类
图像处理类
输入和安全类
装载器类
语言类
输出类
分页类
Session 类
Trackback 类
模板解析器类
排版类
单元测试类
URI 类
User-Agent 类
XML-RPC 类
Zip 编码类
......