No Comments 作者:小项-怪物猪 分类:FreeBSD

2.1 显示目录
命令:pwd(print working directory)
格式:pwd
功能:显示出用户当前工作目录的全路径名。
例如:% pwd

2.2 建立目录
命令:mkdir(make directory)
格式:mkdir directory_name
功能:建立新目录
例如:% mkdir directory

2.3 改变目录
命令:cd(change directory)
格式:cd directory_name
功能:改变当前工作目录
注释:目录名选项有:
(1) 目录名,转到当前目录下的子目录。
(2) .. 表示转到当前目录的父目录。
(3) / 表示转到根目录。
(4) 没有选项时,转到用户的主目录。
例如:% cd directory

2.4 删除目录
命令:rmdir (remove directory)
格式:rmdir directory_name
功能:删除不存在文件的子目录名。
注释:
(1) 删除子目录时,要求被删除的目录中不存在文件或子目录,否则无法删除。
(2) 若被删除的目录中有文件或子目录,请参考命令rm -r directory_name。
例如:% rmdir directory


3.1 列出文件目录
命令:ls (list)
格式:ls [option] directory_name
功能:列出指定目录中的文件名和子目录名。当无子目录名时,列出当前目录
中的文件名和子目录名。
选项:-a列出所有文件,包括以点开头的隐含文件。
-l按长格式列出文件名,包括文件类型标识,权限,链接数,文件主名,
文件组名,字节数,日期。
-r列出包括子目录下所有文件
-g在长格式中给出用户组的标识。
-t安文件生成日期排序。
例如:% ls -la

3.2 显示文件内容
命令:cat (catenae)
格式:cat filename
功能:显示出文件的内容。
注释:当文件内容在屏幕上滚动显示时,可按Ctrl+S键屏幕滚暂停,按Ctrl+Q
键继续显示。
例如:% cat filename

3.3 按屏幕显示文件内容
命令:more
格式:more filename
功能:按屏幕一屏一屏显示出文件内容
选项:
注释:在屏幕显示过程中有功能键。空格键 继续下一屏的输出;回车键 看下
一行的输出;q键 跳出more状态;/字符串 查旬字符串所在处;a键 返
回到上一屏。
例如:% more filename

3.4 分页显示文件内容
命令:pg (page)
格式:pg [option] filename
功能:分页显示指定文件的内容。在显示一页文件时,最后一行将显示等待用
户输入指令。可输入的指令有如下选项。
选项:h 显示pg命令中可使用的帮助(help)命令
q 退出pg命令。
[return] 显示下一页正文。
1 显示正文的下一行
[Space] 显示下一页
d/[Ctrl-D] 将屏幕滚动半屏。
n 显示pg命令行中说明的下一个文件。
p 显示pg命令行中说明的前一个文件。
% 显示正文当前页的前面一页。
/pattern 在文件中向前搜索指定的字符模式。
?pattern 在文件中向后搜索指定的字符模式。
注释:当pg命令显示到文件的末尾时,显示一个文件结束信息EOF(end of file)。
例如:% pg filename

3.5 读文件
命令:view
格式:view filename
功能:只能读出文件内容。
注释:此命令不能对读出的原文件进行写操作。若对原文件进行了修改,可利
用命令“:w newfilename”将修改后的文件写到新文件中。
例如:% view filename

3.6 显示文件头部
命令:head
格式:head [option] filename
功能:显示文件的头部
选项:缺省 显示文件的头10行。
-i 显示文件的开始 i行。
例如:% head filename

3.7 显示文件尾部
命令:tail
格式:tail [option] filename
功能:显示文件的尾部
选项:缺省 显示文件的末10行。
-i 显示文件最后 i行。
+i 从文件的第i行开始显示。
例如:% tail filename

3.8 显示格式化的文件内容
命令:pr (print)
格式:pr filename
功能:在屏幕上显示格式化的文件内容,即印出每页66行的文本文件,包括5
行页头和5行页尾。页头包括两行空行,一行含有文件的时间、文件名
和页号,另外两行为空行。页尾为5行空行。
例如:% pr filename

3.9 拷贝文件
命令:cp (copy)
格式:cp [option] filename1 filename2
cp [option] filename... directory
cp -r directory1 directon2
功能:把一个文件的全部内容拷贝到另一个文件,也可将一个或多个文件拷贝
到另一个目录中。
选项:-i 按提示进行拷贝文件。
-p 按原文件日期进行拷贝。
-r 对子目录下所有文件进行拷贝。
注释:当filename1拷贝到filename2时,若filename2已经存在,则filename2
的内容将被filename1覆盖。
例如:% cp filename1 filename2

3.10移动文件或文件改名
命令:mv (move)
格式:mv filename1 filename2
mv filename... direction
mv direction1 direction2
功能:改变文件或目录的名子,或把一些文件移到另一目录下。
注释:当filename1更名为filename2时,若filename2已经存在,则filename2
的内容将被filename1覆盖
例如:% mv filename1 filename2

3.11删除文件
命令:rm (remove)
格式:rm filename
rm -r direction
功能:删除指定的文件或一个目录中的文件。
注释:用-r选项时,将删除指定目录的所用文件,包括目录名。
例如:% rm filename

3.12链接文件
命令:ln (link)
格式:ln [option] filename linkname
ln [option] directory pathname
功能:为文件或目录建立一个链。其中,filename和directory是源文件名和
源目录名;linkname和pathname分别表示与源文件或源目录名相链接的
文件或目录。
选项:-s 为文件或目录建立符号链接。
注释:链接的目地在于,对一个文件或目录赋予两个以上的名字,使其可以出
现在不同的目录中,既可以使文件或目录共享,又可以节省磁盘空间。
例如:% ln -s filename linkname

3.13改变文件读取权限
命令:chmod (change mode)
格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename
chmod [who][op][mode] directory
功能:改变文件的读写和执行权限。有符号法和八进制数字法。
选项:(1)符号法:
u (user) 表示用户本人。
g (group) 表示同组用户。
o (oher) 表示其他用户。
a (all) 表示所有用户。
+ 用于给予指定用户的许可权限。
- 用于取消指定用户的许可权限。
= 将所许可的权限赋给文件。
r (read) 读许可,表示可以拷贝该文件或目录的内容。
w (write) 写许可,表示可以修改该文件或目录的内容。
x (execute)执行许可,表示可以执行该文件或进入目录。
(2)八进制数字法:
此方法用三位八进制数作任选项,每位数字分别表示用户本人、同组用
户、其他用户的权限,其中:
4 (100) 表示可读。
2 (010) 表示可写。
1 (001) 表示可执行。
注释:
例如:% chmod a+rx filename
让所有用户可以读和执行文件filename。
% chmod go-rx filename
取消同组和其他用户的读和执行文件filename的权限。
% chmod 741 filename
让本人可读写执行、同组用户可读、其他用户可执行文件filename。

3.14改变文件所有权
命令:chown (change owner)
格式:chown username filename
chown -R username directory
功能:改变文件或目录的所有权。
选项:-R 将改变目录中所有文件及目录的拥有者。
注释:只有文件的主人和超级用户才能改变文件的所有权。
例如:% chown username filename

3.15寻找文件
命令:find
格式:find pathname [option] expression
功能:在所给的路经名下寻找符合表达式相匹配的文件。
选项:-name 表示文件名
-user 用户名,选取该用户所属的文件
-group 组名,选取该用户组属的文件
-mtime n 选取n天内被修改的文件
-newer fn 选取比文件名为fn更晚修改的文件
注释:
例如:% find . -name '*abc*' -print

3.16搜索文件中匹配符
命令:grep
格式:grep [option] pattern filenames
功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。
选项:-v 找出模式失配的行
-c 统计匹配行的数量
-n 显示匹配模式的每一行
注释:
例如:% ps -aux | grep R

3.17比较文件不同
命令:diff (difference)
格式:diff filename1 filename2
功能:显示两文件的不同之处。
选项:
注释:
例如:% diff file1 file2

3.18比较文件
命令:cmp (compare)
格式:cmp [-l] [-s] filename1 filename2
功能:显示比较两文件不同处的信息
选项:-l 给出两文件不同的字节数
-s 不显示两文件的不同处,给出比较结果
注释:
例如:% cmp file1 file2

3.19比较文件共同处
命令:comm (common)
格式:comm [-123] filename1 filename2
功能:选择或拒绝比较两文件出现的共同行
选项:-1 不显示第1列
-2 不显示第2列
-3 不显示第3列
注释:输出三列,第一列表示在file1中出现的行,第二列表示在file2中出现
的行,第三列表示在file1和file2中共同出现的行。
例如:% comm file1 file2

3.20排序文件
命令:sort
格式:sort [option] filename
功能:将制定的文件按要求排序
选项:-r 按字母倒排序
-n 按数字的值从笑到大排序
-r 按当前排序规则逆序排序
-f 不区分大小写排序
-d 按典型顺序排序
注释:选项缺省时按ascii码顺序排序
例如:% sort -nr file

3.21压缩文件
命令:compress
格式:compress [option] filename
功能:压缩文件。
选项:-f 强制压缩
-v 压缩时显示压缩百分比
注释:
例如:% comproess files

3.22解缩文件
命令:uncompress
zcat
格式:compress [option] filename
zcat filename
功能:展开或显示压缩文件。
选项:-c 不改变文件写到标准输出
注释:zcat命令相当于uncompress -c
例如:% uncomproess files.Z


3.23显示文件类型
命令:file
格式:file filename ...
功能:按文件内容来推测文件类型,如text,ascii,C,executable,core。
选项:
注释:
例如:% file *

3.24建立档案文件
命令:tar (tape archive)
格式:tar [option] tarfile filename
功能:建立文件的存档或读存档文件。
选项:-c 建立一个新的档案文件
-x 从档案文件中读取文件
-v 显示处理文件的信息
-f 指定档案文件名,缺省时为磁带机即/dev/rmt/0
-t 列出存档文件的信息
注释:
例如:% tar cvf tarfile .
% tar xvf tarfile
% tar tvf tarfile

3.25磁带拷贝文件
命令:dd
格式:dd [option=value]
功能:用磁带机转换或拷贝文件。
选项:if=name 指定输入文件名
of=name 指定输出文件名
ibs=n 指定输入文件块大小为n字节(缺省为512字节)
obs=n 指定输出文件块大小为n字节(缺省为512字节)
注释:
例如:% dd if=filename of=/dev/rmt/0
% dd if=/dev/rmt/0 of=filename ibs=1024

3.26修改文件日期
命令:touch
格式:touch filenae
功能:改变文件的日期,不对文件的内容做改动,若文件不存在则建立新文件。
选项:
注释:
例如:% touch file

3.27统计文件字数
命令:wc (word characters)
格式:wc [option] filename
功能:统计文件中的文件行数、字数和字符数。
选项:-l 统计文件的行数
-w 统计文件的字数
-c 统计文件的字符数
注释:若缺省文件名则指标准输入
例如:% wc file

3.28检查拼写
命令:spell (spelling)
格式:spell [option] filename ...
功能:检查文件中的拼写错误
选项:-b 按英国拼法检查
-v 显示字面上不在拼法字典上的词
-x 显示每一个可能合理的词根
注释:
例如:% spell file

4.1显示当前注册的用户
命令:w
格式:w [option] [username]
功能:显示当前正在使用系统的用户名、注册时间和当前执行的命令。
选项:-h 不显示起始行
-s 按短格式显示
-l 按长格式显示(缺省设置)
注释:
例如:% w

4.2 显示都谁登录到机器上
命令:who
格式:who
功能:显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。
例如:% who

4.3 显示当前终端上的用户名
命令:whoami
格式:whoami
功能:显示出当前终端上使用的用户。
例如:% whoami

4.4 确定命令位置
命令:whereis
格式:whereis command
功能:确定一个命令的二进制行码、源码及联机手册所在的位置。
选项:
注释:
例如:% whereis ls

4.5 查找非标准命令
命令:which
格式:which command
功能:查找非标准命令,即使用别名或系统中标准命令集之外的命令。
选项:
注释:
例如:% which ls

4.6 显示日期
命令:date
格式:date
功能:显示或设置日期和时间。
选项:
注释:只有超级用户有权设置日期。
例如:% date

4.7 显示日历
命令:cal (calendar)
格式:cal [month] year
功能:显示某年内指定的日历
选项:
注释:
例如:% cal 1998

4.8 计算命令执行时间
命令:time
格式:time [command]
功能:计算程序或命令在执行其间所用的时间。
选项:
注释:计算出的时间为:real是命令在系统驻留的总时间,user是命令消耗CPU
的时间,sys是命令I/O所开销的时间。
例如:% time myprog

4.9 查询帐目
命令:acseek (account seek)
格式:acseek [-d n] [-m usersname]
功能:查询本月的用户帐目。
选项:-d n
-m username
注释:若没有选项,则显示本人当月的帐单。
例如:% acseek

4.10显示用户标识
命令:id
格式:id [option] [user]
功能:显示用户标识及用户所属的所有组。
选项:-a 显示用户名、用户标识及用户所属的所有组
注释:
例如:% id username

4.11显示主机标识
命令:hostid
格式:hostid
功能:显示主机的唯一标识,是被用来限时软件的使用权限,不可改变。
选项:
注释:
例如:% hostid

4.12显示主机名
命令:hostname
格式:hostname
功能:显示或设置主机名。
选项:
注释:只有超级用户才能设置主机名。
例如:% hostname

4.13显示进程
命令:ps
格式:ps [option]
功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。
选项:-a 列出当前系统中所有进程的信息
-l 显示一个长列表
-e 显示当前运行的每一个进程信息
-f 显示一个完整的列表
注释:
例如:% ps -ef

4.14显示磁盘空间
命令:df (disk free)
格式:df [option]
功能:显示磁盘空间的使用情况,包括文件系统安装的目录名、块设备名、总
字节数、已用字节数、剩余字节数占用百分比。
选项:-i 显示已用和未用的字节数
-k 显示磁盘空间的使用信息
注释:
例如:% df -k

4.15显示文件盘空间
命令:du (disk usage)
格式:du [option] [filename]
功能:显示目录或文件所占磁盘空间大小
选项:-a 显示所有文件的大小
-s 显示制定目录所占磁盘大小
注释:
例如:% du

4.16显示盘空间限制
命令:quota
格式:quota -v [username]
功能:显示用户的磁盘空间限制和使用情况。包扩盘空间的限额和已使用数,
允许建立的节点数限额和使用节点数。
选项:-v 查看用户在系统中的盘空间
注释:只有超级用户可以显示任何用户的使用情况,用edquota命令可修改。
例如:% quota -v

4.17显示终端选项
命令:stty
格式:stty [option]
功能:显示或设置终端的任选项。
选项:-a 显示所有设置情况
-g 显示当前设置
注释:
例如:% stty -a

4.18显示终端名
命令:tty
格式:tty
功能:显示终端名
选项:
注释:
例如:% tty

4.19回忆命令
命令:history
格式:history
功能:帮助用户回忆执行过的命令。
选项:
注释:
例如:% history

4.20联机帮助手册
命令:man (manual)
格式:man command_name
功能:显示参考手册,提供联机帮助信息。
选项:
注释:-k 按制定关键字查询有关命令
例如:% man tar

4.21建立别名
命令:alias
格式:alias newname name
功能:用户可以将常用的命令用自己习惯的名称来重新命名。
选项:
注释:
例如:% alias dir 'ls -F'


5.1显示网络地址
命令:arp
格式:arp hostname
功能:显示系统当前访问的远程住机名、IP地址和硬件地址。
选项:-a
注释:
例如:% arp -a

5.2 显示用户信息
命令:finger
格式:finger username
功能:显示网上用户使用机器的情况,包括用户何时登录和最后一次注册记录。
选项:
注释:
例如:% finger username

5.3 网上对话
命令:talk
格式:talk username
功能:在网上与另一用户进行对话。
选项:
注释:对话时系统把终端分为上下两部分,上半部显示自己键入信息,下半部
显示对方用户键入的信息。键入delete或Ctrl+C则结束对话。
例如:% talk username

5.4 允许或拒绝接受信息
命令:mesg (message)
格式:mesg [n/y]
功能:允许或拒绝其它用户向自己所用的终端发送信息。
选项:n 拒绝其它用户向自己所用的终端写信息
y 允许其它用户向自己所用的终端写信息(缺省值)
注释:
例如:% mesg n

5.5 给其他用户写信息
命令:write
格式:write username [ttyname]
功能:给其他用户的终端写信息。
选项:
注释:若对方没有拒绝,两用户可进行交谈,键入EOF或Ctrl+C则结束对话。
例如:write username

5.6 测试网路
命令:ping
格式:ping hostname
功能:向网络上的主机发送ICMP ECHO REQUEST信息包,检测网络是否畅通。
选项:
注释:被测试的主机名可用IP地址。当丢包率为(100% packet loss)则说明
当前网络不通。
例如:% ping hostsname

5.7 远程shell命令
命令:rsh (remote shell)
格式:rsh hostsname command
功能:在本地机执行远程主机的shell命令。
选项:
注释:
例如:% rsh hostname who

5.8 远程考贝文件
命令:rcp (remote copy)
格式:rcp [-r] file newfile
功能:拷贝远程主机上的文件。
选项:-r 拷贝目录
注释:
例如:% rcp hostname:/tmp/file .

5.9 远程注册
命令:rlogin (remote login)
格式:rlogin hostname [-l username]
功能:注册到远程主机上。
选项:-l username 注册到另一用户
注释:要有用户口令才能注册。
例如:% rlogin hostname

5.10 远程登录
命令:telnet
格式:telnet hostname
功能:远程登录到网上其它主机。
选项:
注释:支持不同的操作系统。
例如:% telnet bbs.tsinghua.edu.cn

5.11文件传输
命令:ftp (file transfer program)
格式:ftp hostname
功能:网络文件传输及远程操作。
选项:ftp命令:
?/help ftp的联机帮助
open hostname 打开制定的远程机
cd [dirname] 进入远程机的目录
lcd [dirname] 设置本地机的目录
dir/ls 显示远程的目录文件
binary 以二进制方式进行传输
get/mget 从远程机取一个或多个文件
put/mput 向远程机送一个或多个文件
prompt 打开或关闭多个文件传送时的交互提示
close 关闭与远程机的连接
quit 退出ftp
注释:
例如:% ftp hostname

5.12显示到网络主机的路经
命令:traceroute
格式:traceroute hostname
功能:显示本机到达某一网络主机所经的路经和使用的时间。
选项:
注释:
例如:% traceroute hostname


6.1 发送或接受电子邮件
命令:mail/Mail/mailx
格式:mail username (发送)
mail [option] (接受)
功能:向网上用户发送或接受电子邮件。
选项:-r 邮件按先进先出顺序排序。缺省时为后进先出顺序排序
-q 中断mail后不改变信箱内容
-p 显示mail每份邮件,不显示提示信息
-f 从邮件格式文件中读邮件
注释:mail命令:
? 显示mail帮助命令
h 邮件标题列表
p 显示当前邮件
n 显示下一邮件
r [uers] 给发信人或用户回信
s [file] 将邮件保存到文件中,保存标题信息
w [file] 将邮件写到文件中,不保存标题信息
d [n] 删除当前邮件或第n封邮件
q 将未删除的邮件存入mbox文件,并退出mail
x 所有邮件不作修改,退出mail
例如:% mail -s "Subjet ..." username < messages

6.2 显示邮件队列
命令:mailq
格式:mailq
功能:查看正在发送或接收邮件的排队情况。
选项:
注释:此命令一般在系统或网络不同时使用。
例如:% mailq

6.3 邮件操作命令
命令:pine
格式:pine
功能:对自己邮件操作的程序。
选项:
注释:此操作是在菜单提示下进行。
例如:% pine

7.1 按时间执行命令
命令:at/batch
格式:at [option] [time] [data] [file]
功能:在制定的时间执行命令或命令文件。
选项:-r 取消以前用at命令提交的作业
-l 显示用at命令提交的所有作业状态和作业号
注释:
例如:at 0030 Jan 20 myfile

7.2 参数回至标准输出
命令:echo
格式:echo [-n] [arguments]
功能:将参数即字符串至标准输出即显示器
选项:-n 不向标准输出回送换行符
注释:
例如:echo *

7.3 复制至文件
命令:tee
格式:tee [option] filename
功能:至标准输出的同时复制至文件
选项:-a 输出时附加到文件中
-i 不理采中断
注释:
例如:% who | tee file

7.4 给程序优先级
命令:nice
格式:nice [-n] command
功能:以低的优先级运行程序或命令。
选项:-n 为优先级0-20从高到低
注释:
例如:nice -5 progame

7.5 终止进程
命令:kill
格式:kill [option] pid
功能:向指定的进程送信号或终止进程。
选项:-9 强行终止进程
-17 将进程挂起
-19 将挂起的进程激活
注释:pid标示进程号,可由ps命令得到。
例如:% kill -9 pid

7.6 进程睡眠
命令:sleep
格式:sleep time
功能:使当前正在执行的进程在规定的时间内处于睡眠。
选项:
注释:time为进程将睡眠的时间,以秒为单位。
例如:% sleep time

7.7 显示作业状态
命令:jobs
格式:jobs [-l]
功能:显示当前作业的状态
选项:-l 长列表显示作业状态,包括所有者、作业号、终端和状态。
注释:作业状态为 +表示最近被停止的作业,-表示先前的作业,exit 1表示
退出的作业,job# done表示已完成的作业。
例如:% jobs

7.8 前台作业
命令:fg
格式:fg job#
功能:将指定作业号的作业转入前台运行。job#表示作业号。
选项:
注释:
例如:% fg job#

7.9 后台作业
命令:bg/&
格式:bg job#
command &
功能:将指定作业号的作业或命令推到后台运行。
选项:
注释:
例如:% bg job#

7.10挂起作业
命令:stop
格式:stop job#
功能:将指定作业号的后台作业挂起.
选项:
注释:
例如:% stop job#


8.1 C程序编译
命令:cc
格式:cc [option] filename
功能:编译或链接指定的C文件。
选项:-o 指定输出文件名,缺省时为a.out
-c 只编译,产生.o的目标文件
-g 产生用于符号测试的执行文件
-lm 进行连接cc数学库
-O 进行代码的一般优化
-O2 二级优化
注释:C编译器参考手册可用命令man cc查看。
例如:% cc -o test test.c

8.2 C++程序编译
命令:CC
格式:CC [option] filename
功能:编译或链接指定的C++文件。
选项:同C编译选项
注释:C++编译器参考手册可用命令man CC查看。
例如:% CC -O2 test.cc

8.3 FORTRAN77程序编译
命令:f77
格式:f77 [option] filename
功能:编译或链接指定的Fortran文件
选项:-o 指定输出文件名,缺省时为a.out
-c 只编译,产生.o的目标文件
-g 产生用于符号测试的执行文件
-O0 不进行代码优化
-O1 尽快进行代码优化
-O2 二级优化
-O3 三级优化
注释:FORTRAN77编译器参考手册可用命令man f77查看
例如:% f77 -c test.f

8.4 FORTRAN90程序编译
命令:f90
格式:f90 [option] filename
功能:编译或链接指定的Fortran90文件
选项:同FORTRAN77编译选项
注释:FORTRAN90编译器参考手册可用命令man f90查看
例如:% f90 -O -o test test.f

8.5 GNU程序编译
命令:gcc (GNU C)
g++/c++ (GNU C++)
g77 (GNU FORTRAN77)
格式:gcc [option] filename
g++ [option] filename
g77 [option] filename
功能:编译或链接指定的编译文件。
选项:-o 指定输出文件名,缺省时为a.out
-c 只编译,产生.o的目标文件
-O 进行代码的一般优化
-O2 二级优化
注释:GNU编译器参考手册可进入emacs中info菜单下查看。
例如:% gcc -o test test.c

8.6 运行文件
格式:a.out
filename
功能:源程序经编译后产生目标代码文件,放在a.out文件或指定输出文件名。

No Comments 作者:小项-怪物猪 分类:FreeBSD

<VirtualHost 192.168.1.254:80>     #设置ip
    ServerAdmin ripsy@91.com         #管理员邮箱
    DocumentRoot "/home/ripsy/www"   #网站的目录
    ServerName www.mobedu.cn             #网站的域名
    ServerAlias mobedu.oicp.net               #网站别名---可以多个写法是中间加空格
    ErrorDocument 404 http://www.mobedu.cn/index.html    定义错误目录,貌似只能是http这样的形式不能使用"/home/ripsy"这样的路径形式
</VirtualHost>

No Comments 作者:小项-怪物猪 分类:FreeBSD

方法一:
在你的程序初始化时使用如下代码:
<?php
$Php2Html_FileUrl = $_SERVER["REQUEST_URI"];
$Php2Html_UrlString = str_replace("/", "", strrchr($php2Html_FileUrl, "/"));
$Php2Html_UrlQueryStrList = explode("@", $Php2Html_UrlString);
foreach($Php2Html_UrlQueryStrList as $php2Html_UrlQueryStr)
{
$Php2Html_TmpArray = explode("|", $php2Html_UrlQueryStr);
$_GET[$Php2Html_TmpArray[0]] = $Php2Html_TmpArray[1];
}
echo '假静态:$_GET变量<br />';
print_r($_GET);
?>
然后php中调用$_GET变量就像平常一样了。
连接使用方式:
****.php/param1|1234@param2|4321
和****.php?param1=1234&param2=4321一样。

方法二:通过URL Rewrite实现链接静态化

我们知道搜索引擎对于静态页面是非常友好的,因此很多网站通过生成静态页面等手段方便爬虫抓取自己网站的内容。但是有时候一些应用并不适合全部静态化,比如数据变化非常大的论坛/贴吧系统,这时候我们可以通过URL重写来实现链接的伪静态化,即网站对外使用静态化的链接,而内部实际上仍然使用动态页面的 URL形式。比如像这样一个链接:http://www.ci123.com/abc.php?action=a&id=1,我们可以改写成http://www.ci123.com/abc/a/1.html的形式。这是搜索引擎优化最重要的内容之一,它还有一个额外的好处,可以使页面有一个永久链接,即便以后网站系统内部链接有变化,通过适当改变Rewrite规则就可以保证原先的外部URL一直有效。

下面介绍2种简单的Apache+php下实现URL重写的方法,第一种适合有服务器配置权限的用户,第二种适合租用空间的用户,也作为我近期的学习心得的整理。


1、对于有服务器配置权限的用户,推荐使用Apache的mod_rewrite模块,这里假设已经安装好mod_rewrite模块。打开Apache的配置文件,找到相应主机的部分,添加以下代码:

RewriteEngine On
RewriteRule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?action=$1&id=$2

然后在shell里执行service httpd reload,让Apache重新载入配置就好了。现在在PHP页面里面我们可以把链接写成 abc/a/1.html的形式,Apache在解析这个 URL的时候会rewrite成abc.php?action=a&ampid=1的形式,并返回正确的页面。运用正则表达式我们可以实现几乎任何我们想要的链接形式,mod_rewrite模块的功能异常强大,这里只是一个及其简单的应用。

2、对于租用空间的用户,一般都没有办法修改Apache的配置,这里有个变通的方法,原理是这样的:当要传递参数访问PHP 页面时,正常情况下是通过自动全局变量$_GET来获得,比如上面的链接,在页面里可以通过$_GET['action'] 和 $_GET['id'] 来获得,重写URL后就不行了。现在在每个页面里require一个url_rewrite.php文件,里面代码如下:

$filename = basename($_SERVER['scrīpt_NAME']);

if (strtolower($filename) == "abc.php"){
  if (!empty($_GET[id])){
    $id = intval($_GET[id]);
    $action = intval($_GET[action]);
  }
  else {
    $nav = $_SERVER["REQUEST_URI"];
    $scrīpt = $_SERVER["scrīpt_NAME"];
    $nav = ereg_replace("^$scrīpt", "", urldecode($nav));
    $vars = explode("/", $nav);
    $action = intval($vars[1]);
    $id = intval($vars[2]);
   }
}

这样$action和$id也得到了,页面里链接可以写成abc.php/a/1的形式来访问相应页面。
需要注意的是这种方法效率较第一种低,第一种方法是在WEB服务器URL解析过程中实现的,而这里是在PHP页面解析过程里实现的,第2种方法只是变通,不得已而为之,要修改链接形式很不方便也不灵活。

No Comments 作者:小项-怪物猪 分类:Windows

表现症状:
               刚开始的时候一使用pps.再关机的时候就不能正常关机.以为是系统的原因就重新安装了深度精简版系统.再次使用以后同样出现相同问题.
               昨晚继续折腾,到最后发现拔掉所有外设可以正常关机了.结果插回网线的时候机器再次启动.mmdx 吓我啊.灵异事件啊.

解决办法:
               (1).查看系统日志发现有一个注册表错误.分析原因是杀毒软件造成----删除杀软(Mcafee)---------------------------------------注册表错误消失,故障依旧
               (2).看官方faq发现可能是网卡网络唤醒功能开启----晚上回家试验---------电脑故障解决.