### PHP 编程常用技巧四则

1.配置 PHP 文件目录
作为服务器端解释执行的脚本语言,PHP 程序放置在某个服务器可以访问的目录下，一般可以通过修改 Apache 的 httpd.conj 进行配置，例如我们在该文件中的一句：
Alias /test/ "d:/phpwebsite/php/" 那么在浏览器端输入：“http://localhost/test/+PHP 文件名”就可以访问 d:/phpwebsite/php/下的 PHP 文件了；可见该行不过是为存放 PHP 文件的目录起一个别名。
其次，还可以通过指定 DocumentRoot 路径得到存放服务器文件的目录，在 httpd.conj 找到以下两行，其中的路径可以随意指定，你的 PHP 文件也可以放在该目录下，服务器同样可以运行它们，如“http://localhost/+PHP 文件名”。
一般的，将 PHP 文件放在同一个地方比较好，可以方便管理，而其他文件放在另外一个地方。
DocumentRoot "C:/usr/bin/html/"
<Directory "C:/usr/bin/html/">
2.服务器端目录的索引文件
在 httpd.conj 中，有一行：
DirectoryIndex index.html
该行指定目录默认打开文件为 index.html，当访问某个目录时，服务器就会自动查找 index.html, 若果不存在，则显示目录中的所有文件列表，默认打开文件可以改为别的，如 index.php3 等等，但是也许我们有很多目录，无论是存放图片，文本等资料的，还是存放 PHP 文件或别的文件的目录，我们并不希望用户能看到目录中的文件列表，在 httpd.conj 中指定了一个.htacess 文件，该文件产生一个目录索引文件，例如我们用写字板建立一个.htacess 文件：
# .htacess #
DirectoryIndex error_open.php
再建立一个错误警告文件：
# error_open.php #
<? echo " 您没有权限访问该页！" ?>
其中的 error_open.php 为权限错误警告文件，将此 2 文件放在所有保护目录下，当用户企图打开目录时，自动转向执行 error_open.php，显示错误警告。
3.目录删除巧实现
我们知道，PHP4 for/win32 中有个 rename()函数可以支持对目录/文件进行重命名，如：
rename( oldpath, newpath) // oldpath 为文件或目录原来路径；
// newpath 为新定义路径；
实现将 oldpath 改名为 newpath。
PHP4 中没有删除目录/文件的函数，怎么作到删除呢？我们知道，php.ini 中有一行用来完成 HTTP 上传操作的临时文件目录配置行：
upload_tmp_dir= ;
PHP4 支持该临时目录的配置(PHP3 不支持)，当上载操作完成则自动清空临时目录，好了，用它我们可以巧妙的实现文件/目录的删除，比如设置： upload_tmp_dir="d:/phpwebsite/php/tmp/" ;
要删除某个目录 path,执行：
<?php
tmp="d:/phpwebsite/php/tmp/;"
rename( path, tmp)
?>
那么文件或目录 path 改名为 tmp 后， tmp 目录下的所有文件/目录自动清除，就完成了删除操作。
4.快速建立 MySql 数据库表
PHP 和 MySql 数据库达到了完美结合，在网页上，比如在论坛或书屋发表作品的新用户，我们要把他的言论信息在线写入数据库中，往往要在相应的数据库中为该用户新建一个数据表。win32 下建立新的 MySQL 空数据库很简单，只要在“/mysql/data/”目录下建立一个文件夹，如："/usrinfo/",就可以了。而向库中增添新表可通过以下程序实现：
# connect.mysql--连接数据库 #
<?php
connection = mysql_connect();
mysql_select_db("usrinfo", connection);
?>
# make.php-- 建立如下结构的，以用户名为表名的数据表 #
<?php
//调用 connect.mysql
require("connect.mysql");
//检查以用户名为表名的数据表存在否?
query="select count(*) from usrname";
result=mysql_db_query( query);
//不存在则创建，如存在就是老用户；
if(! result){
mysql_query("
create table usrname(
id tinyint(6),
title text,
body longtext,
dateof date;
timeof time;
)") or die(mysql_error());
}
//此处为向数据表插入新的数据部分
?>