PHP 学习心得
PHP 是一门非常流行的服务器端脚本语言,它的应用非常广泛,特别是在 Web 开发领域。本文将总结一些 PHP 学习心得,适合 PHP 初学者快速入门。
1. 变量传递问题
在 PHP 中,变量传递是通过 GET、POST 和 SESSION 实现的。但是,在最新的 PHP 版本中,自动全局变量是关闭的,为了避免兼容性问题,强迫自己熟悉新的写法。可以使用 $_GET['foo']、$_POST['foo'] 和 $_SESSION['foo'] 来获取变量。
2. 中文参数传递问题
在 Win32 下,使用 GET 方法传递中文参数可能会出错,解决办法是使用 urlencode() 函数来编码参数。例如,test.php?a=你好&b=你也好 传递参数时,可以使用 urlencode() 函数编码参数,例如 test.php?a= urlencode(你好)&b=urlencode(你也好)。
3. Session 问题
在 Win32 下,Session 不能正常工作,因为 PHP.ini 中的 session.save_path 参数默认设置为 /tmp,这显然是 Linux 下的配置。解决办法是将 session.save_path 设置为一个绝对路径,例如 session.save_path = c:\windows\temp。
4. 错误信息显示
在 PHP.ini 中,将 display_errors 设置为 On,并且 error_reporting 设置为 E_ALL,可以显示所有的错误和提示。这对于调试非常有帮助。如果你用以前的 PHP 写法,错误信息多半是关于未定义变量的。解决办法是探测或者屏蔽,例如 if(isset($foo)) echo $foo 或者 echo @$foo。
5. 邮件发送问题
在 Win32 下,mail() 函数不能发送电子邮件。解决办法是使用 SMTP 服务器来发送电子邮件,例如修改 PHP.ini 的 SMTP = ip,其中 ip 是不带验证功能的 SMTP 服务器。
6. MySQL 密码设置
在安装 MySQL 时,如果没有设置密码,应该使用 update mysql.user set password="yourpassword" where user="root" 修改密码。
7. Header 已经发送错误
header already sent 这个错误通常会在使用 HEADER 时出现,可能是因为在使用 HEADER 前 PRING 或者 ECHO 了,或者当前文件前面有空行,或者 INCLUDE 了一个文件,该文件尾部有空行或者输出。
8. PHP.ini 修改后无效
在修改 PHP.ini 后,需要重新启动 Web 服务器,例如 IIS、Apache 等等,然后才会应用最新的设置。
9. PHP 安装问题
在 2003 上面安装 PHP,可以使用 ISAPI 的安装方法。步骤一:先下载 PHP 安装程序,例如 php-4.2.3-installer.exe。步骤二:在安装 PHP 安装程序之前,保证 IIS6.0 启动了,并能够访问。步骤三:在默认网站-->应用程序配置中,点击 web 服务扩展-->新建 web 服务扩展。步骤四:扩展名-->php,然后添加。步骤五:找到 php.exe 的路径添加上去。步骤六:确定,然后选择 php 的服务扩展,并点击允许。
10. SQL 语句调试
有时候 SQL 语句不起作用,对数据库操作失败。最简便的调试方法是,echo 那句 SQL,看看变量的值能得到不。
11. include 和 require 的区别
include 和 require 都可以用来包含文件,但是它们etween 的区别是,如果要包含的文件不存在,include 提示 notice,然后继续执行下面的语句,require 提示致命错误并且退出。
读取、写入文档数据
使用 r() 函数可以读取文档数据,例如 function r($file_name) {$filenum=@fopen($file_name,"r");@flock($filenum,LOCK_SH);$file_data=@fread($filenum,fil...}。