当前位置:  编程技术>php
本页文章导读:
    ▪php巧获服务器端信息       <?php     $fp = fopen("http://www.***.com/***.htm","r"); //以只读的方式打开某个站点下的文件     foreach($http_response_header as $info) //对$http_response_header的文件信息头进行遍历循环     ech.........
    ▪Apache2 httpd.conf 中文版       给新手和我看的  #  # 基于 NCSA 服务的配置文件。  #  #这是Apache服务器主要配置文件。  #它包含服务器的影响服务器运行的配置指令。  #参见<URL:http://httpd.ache.org/doc-2.0/>以取得关.........
    ▪PHP 字符串操作入门教程       无论哪种语言,字符串操作都是一个重要的基础,往往是简单而重要。正像人说话一样,一般有形体(图形界面),有语言(print 字符串?),显然字符串能解释更多的东西。PHP提供了大.........

[1]php巧获服务器端信息
    来源: 互联网  发布时间: 2013-11-30
<?php  

  $fp = fopen("http://www.***.com/***.htm","r"); //以只读的方式打开某个站点下的文件  

  foreach($http_response_header as $info) //对$http_response_header的文件信息头进行遍历循环  

  echo $info."<br>"; ,"r"); //以只读的方式打开某个站点下的文件  

  foreach($http_response_header as $info) //对$http_response_header的文件信息头进行遍历循环  

  echo $info."<br>"; //最后输出各条记录信息  

  ?>  

  在信息头中,显示的内容包括了该文件是否存在,文件的容量大小、文件类型、编码方式等等,甚至还能获取到该站点所使用的服务器名称、版本号。如果是打开ASP或PHP之类的文件,其中还包含了一些额外信息。  


更简单的方法 
$fp = fopen("http://www.***.com/***.htm","r"); //以只读的方式打开某个站点下的文件 

print_r( stream_get_meta_data($fp));


    
[2]Apache2 httpd.conf 中文版
    来源: 互联网  发布时间: 2013-11-30
给新手和我看的 



# 基于 NCSA 服务的配置文件。 

#这是Apache服务器主要配置文件。 
#它包含服务器的影响服务器运行的配置指令。 
#参见<URL:http://httpd.ache.org/doc-2.0/>以取得关于这些指令的详细信息 

#不要只是简单的阅读这些指令信息而不去理解它。 
#这里只是做了简单的说明,如果你没有参考在线文件,你就会被警告。 

#这些配置指令被分为下面三个部分: 
#1. 控制整个Apache服务器行为的部分(即全局环境变量) 
#2. 定义主要或者默认服务参数的指令,也为所有虚拟主机提供默认的设置参数 
#3. 虚拟主机的设置参数 

#配置和日志文件名:如果你指定的文件名以“/”开始(win32下以“dirver:/”), 
#服务器将使用绝对路径,如果文件名不是以“/”开始的,那么它将把ServerRoot 
#的值附加在文件名的前面,例如,对“logs/foo.log",如果ServerRoot的值 
#为“/usr/local/apache2”,则该文件应为“/usr/local/apache2/logs/foo.log” 

##第一区:全局环境参数 

#这里设置的参数将影响整个Apache服务器的行为; 
#例如Apache能够处理的并发请求的数量等。 

#ServerRoot:指出服务器保存其配置、出错和日志文件等的根目录。 

#注意!如果你想要将它指定为NFS或其它网络上的位置, 
#请一定要去阅读与LockFile有关的文档(可能在 
#<URL:http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile>)。 
#这将会使你自己也能解决很多问题。 

#路径的结尾不要添加斜线。 

ServerRoot "/usr/loacl/apache2" 

#串行访问的锁文件必须保存在本地磁盘上 

<IfModule !mpm_winnt.c> 
<IfModule !mpm_neware.c> 
#LockFile logs/accept.lock 
</IfModule> 
</IfModule> 

#ScoreBoardFile:用来保存内部服务进程信息的文件。 
#如果未指明(默认),记分板(scoreboard)将被保存在一个匿名的共享内存段中, 
#并且它不能被第三方软件所使用。 
#如果指定了,要确保不能使用两个Apache使用同一个记分板文件, 
#这个记分板文件必须保存在本地磁盘上。 

<IfModule !mpm_netware.c> 
<IfModule !perchild.c> 
#ScoreBoardFile logs/apache_runtime_status 
<IfModule> 
<IfModule> 


#PidFile:记录服务器启动进程号的文件。 

<IfModule !mpm_neware.c> 
PidFile logs/httpd.pid 
</IfModule> 


#Timeout:接收和发送前超时秒数 

Timeout 300 


#KeepAlive:是否允许稳固的连接(每个连接有多个请求), 
#设为"Off"则停用。 

KeepAlive On 


#MaxKeepAliveRequests:在稳固连接期间允许的最大请求数, 
#设为0表示无限制接入。 
#我们推荐你将其设为一个较大的值,以便提高性能 
MaxKeepAliveRequests 100 


#KeepAliveTimeout:在同一个连接上从同一台客户上接收请求的秒数 

KeepAliveTimeout 15 

## 
##Server-Pool大小设定(针对MPM的) 
## 

# prefork MPM 
# StartServers:启动时服务器启动的进程数 
# MinSpareServers:保有的备用进程的最小数目 
# MaxSpareServers:保有的备用进程的最大数目 
# MaxClients:服务器允许启动的最大进程数 
# MaxRequestsPerChild:一个服务进程允许的最大请求数 
<IfModule prefork.c> 
StartServers 5 
MinSpareServers 5 
MaxSpareServers 10 
MaxClients 150 
MaxRequestPerChild 0 
</IfModule> 

# worker MPM 
# StartServers:服务器启动时的服务进程数目 
# MaxClients:允许同时连接的最大用户数目 
# MinSpareThreads:保有的最小工作线程数目 
# MaxSpareThreads:允许保有的最大工作线程数目 
# ThreadsPerChild:每个服务进程中的工作线程常数 
# MaxRequestsPerChild:服务进程中允许的最大请求数目 
<IfModule worker.c> 
StartServers 2 
MaxClients 150 
MinSpareThreads 25 
MaxSpareThreads 75 
ThreadsPerChild 25 
MaxRequestsPerChild 0 
</IfModule> 

# perchild MPM 
# NumServers:服务进程数量 
# StartThreads:每个服务进程中的起始线程数量 
# MinSpareThreads:保有的最小线程数量 
# MaxSpareThreads:保有的最大线程数量 
# MaxThreadsPerChild:每个服务进程允许的最大线程数 
# MaxRequestsPerChild:每个服务进程允许连接的最大数量 
<IfModule perchild.c> 
NumServers 5 
StartThreads 5 
MinSpareThreads 5 
MaxSpareThreads 10 
MaxThreadsPerChild 20 
MaxRequestsPerChild 0 
</IfModule> 

# WinNT MPM 
# ThreadsPerChild:服务进程中工作线程常数 
# MaxRequestsPerChild:服务进程允许的最大请求数 
<IfModule mpm_winnt.c> 
ThreadsPerChild 250 
MaxRequestsPerChild 0 
</IfModule> 

# BeOS MPM 
# StartThreads:服务器启动时启动的线程数 
# MaxClients:可以启动的最大线程数(一个线程等于一个用户) 
# MaxRequestsPerThread:每个线程允许的最大请求数 
<IfModule beos.c> 
StartThreads 10 
MaxClients 50 
MaxRequestsPerThread 10000 
</IfModule> 

# NetWare MPM 
# ThreadStachSize:为每个工作线程分配的堆栈尺寸 
# StartThreads:服务器启动时启动的线程数 
# MinSpareThreads:用于处理实发请求的空闲线程数 
# MaxSpareThreads:空闲线程的最大数量 
# MaxThreads:在同一时间活动的最大线程数 
# MaxRequestPerChild:一个线程服务请求的最大数量, 
# 推荐将其设置为0,以实现无限制的接入 
<IfModule mpm_netware.c> 
ThreadStackSize 65536 
StartThreads 250 
MinSpareThreads 25 
MaxSpareThreads 250 
MaxThreads 1000 
MaxRequestPerChild 0 
</IfModule> 

# OS/2 MPM 
# StartServers:启动的服务进程数量 
# MinSpareThreads:每个进程允许的最小空闲线程 
# MaxSpareThreads:每个进程允许的最大空闲线程 
# MaxRequestsPerChild:每个服务进程允许的最大连接数 
<IfModule mpmt_os2.c> 
StartServers 2 
MinSpareThreads 5 
MaxSpareThreads 10 
MaxRequestsPerChild 0 
</IfModule> 


# Listen:允许你绑定Apache服务到指定的IP地址和端口上,以取代默认值 
# 参见<VirtualHost>指令 
# 使用如下命令使Apache只在指定的IP地址上监听, 
# 以防止它在IP地址0.0.0.0上监听 

# Listen 12.34.56.78:80 

Listen 80 


# 动态共享支持(DSO) 

# 为了能够使用那些以DSO模式编译的模块中的函数,你必须有相应的“LoadModule”行, 
# 因此,在这里包含了这些指令,以便能在使用它之前激活。 
# 那些静态编译的模块不需要在这里列出 (即以“httpd -l”列出的模块) 

# 示例: 
# LoadModule foo_module modules/mod_foo.so 



# ExtendedStatus:当调用“server-status”时,控制Apache是产生“全”状态 
# 信息(ExtendedStatus On),还是产生基本信息(ExtendedStatus Off)。 
# 默认为off 

# ExtendedStatus On 

### 第二区:“主”服务配置 

# 这一区建立被 “主” 服务器用的指令值,以回应那些不被 <VirtualHost> 
# 定义处理的任何请求。 
# 这些数值也提供默认值给后面定义的<VirtualHost>容器。 
# 如果<VirtualHost>中有定义,那么这里定义的指令值将被 
# <VirtualHost>中的定义所覆盖。 


<IfModule !mpm_winnt.c> 
<IfModule !mpm_neware.c> 

# 如果你想使httpd以另外的用户或组来运行,你必须在开始时以root方式启动 
# 然后再将它切换为你想要使用的用户或组。 

# User/Group:运行httpd的用户和组 
# 在SCO (ODT3)上使用“User nouser”和“Group nogroup” 
# 在HPUX上,你可能不能以nobody身份使用共享内存,建议创建一个www用户。 
# 注意一些核心(kernel)在组ID大于60000时拒绝setgid(Group)或semctl(IPC_SET), 
#节在这些系统上不要使用“Group #-1”。 

User nobody 
Group #-1 
</IfModule> 
</IfModule> 


# ServerAdmin:你的邮件地址,当发生问题时Apache将向你发出邮件。 
# 作为一个出错文档,这个地址显示在server-generated页上, 
# 例如:admin@your-domain.com 

ServerAdmin kreny@sina.com 


# ServerName指定Apache用于识别自身的名字和端口号。 
# 通常这个值是自动指定的,但是我们推荐你显式的指定它以防止启动时出错 

# 如果你为你的主机指定了一个无效的DNS名,server-generated重定向将不能工作。 
# 参见UseCanonicalName指令 

# 如果你的主机没有注册DNS名,在这里键入它的IP地址 
# 无论如何,你必须使用它的IP地址来提供服务, 
# 这里使用一种容易理解的方式重定向服务 
ServerName www.dalouis.com:80 


# UseCanonicalName:决定Apache如何构造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 
# 当设置为 “Off”时,Apache会使用用户端提供的主机名和端口号。 
# 当设置为“On”,Apache会使用ServerName指令的值。 

UseCanonicalName Off 


# DocumentRoot:你的文档的根目录。默认情况下,所有的请求从这个目录进行应答。 
# 但是可以使用符号链接和别名来指向到其他的位置。 

DocumentRoot "/home/redhat/public_html" 


# Apache可以存取的每个目录都可以配置存取权限(包括它的子目录)。 

# 首先,我们配置一个高限制的特征。 

# 这将禁止访问文件系统所在的目录,并添加你希望允许访问的目录块。 
# 如下所示 
<Directory /> 
Order Deny,Allow 
Deny from all 
</Directory> 


# 注意从这里开始你一定要明确地允许哪些特别的特征能够被使用。 
# - 所以,如果Apache没有象你所期待的那样工作的话, 
# 请检查你是否在下面明确的指定它可用。 



# 这将改变到你设置的DocumentRoot 

<Directory "/home/redhat/public_html"> 


# Options:这个指令的值可以是“None”,“All”,或者下列选项的任意组合: 
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews 

# 注意,“MultiViews”必须被显式的指定,“Options All”不能为你提供这个特性。 

# 这个指令既复杂又重要,请参见 
#“http://httpd.apache.org/docs-2.0/mod...??的信息。 

Options FollowSymLinks 


# AllowOverride控制那些被放置在.htaccess文件中的指令。 
# 它可以是“All”,“None”,或者下列指令的组合: 
# Options FileInfo AuthConfig Limit 

AllowOverride None 


# 控制谁可以获得服务。 

Order allow,deny 
Allow from all 

</Directory> 


# UserDir:指定在得到一个~user请求时将会添加到用户home目录后的目录名。 


UserDir public_html 

# 为防止在UserDir指令上的漏洞,对root用户设置 
# 象“./”这样的UserDir是非常有用的。 
# 如果你使用Apache 1.3或以上版本,我们强烈建议你 
# 在你的服务器配置文件中包含下面的行 

UserDir disabled root 


# 下面是一个使用UserDir指令使一个站点的目录具有只读属性的示例: 

# <Directory /home/*/public_html> 
# AllowOverride FileInfo AuthConfig Limit Indexes 
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludeNoExec 
# <Limit GET POST OPTIONS PROPFIND> 
# Order allow,deny 
# Allow from all 
# </Limit> 
# <LimitExcept GET POST OPTIONS PROPFIND> 
# Order deny,allow 
# Deny from all 
# </LimitExcept> 
# </Directory> 


# DirectoryIndex:定义请求是一个目录时,Apache向用户提供服务的文件名 

# index.html.var文件(一个类型映象文件)用于提供一个文档处理列表, 
# 出于同样的目的,也可以使用MultiViews选项,但是它会非常慢。 

DirectoryIndex index.php index.html index.html.var 


# AccessFileName:在每个目录中查询为目录提供附加配置指令的文件的文件名。 
# 参见AllowOverride指令。 

AccessFileName .htaccess 


# 下面的行防止.htaccess和.htpasswd文件被Web客户查看。 

<Files ~ "^\.ht"> 
Order allow,deny 
Deny from all 
</Files> 


# Typeconfig:定义在哪里查询mime.types文件。 

TypeConfig conf/mime.types 


# DefaultType:定义当不能确定MIME类型时服务器提供的默认MIME类型。 
# 如果你的服务主要包含text或HTML文档,“text/plain”是一个好的选择; 
# 如果大多是二进制文档,诸如软件或图像,你应使用 
# “application/octer-stream”来防止浏览器象显示文本那样显示二进制文件。 

DefaultType text/plain 


# mod_mime_magic允许服务器从自己定义自己类型的文件中使用不同的线索(hints), 
# 这个MIMEMagicFile指令定义hints定义所在的文件。 

<IfModule mod_mime_magic.c> 
MIMEMagicFile conf/magic 
</IfModule> 


# HostnameLookups:指定记录用户端的名字还是IP地址,例如,本指令为on时 
# 记录主机名,如www.apache.org;为off时记录IP地址,204.62.129.132。 
# 默认值为off,这要比设为on好得多,因为如果设为on则每个用户端请求都将会 
# 至少造成对 nameserver 进行一次查询。 

HostnameLookups Off 


# EnableMMAP:控制是否进行内存转储(如果操作系统支持的话)。 
# 默认为on,如果你的服务器安装在网络文件系统上(NFS),请关闭它。 
# 在一些系统上,关闭它会提升系统性能(与文件系统类型无关); 
# 具体情况请参阅http://httpd.apache.org/docs-2.0/mod...tml#enablemmap 

# EnableMMAP off 


# EnableSendfile:控制是否使用sendfile kernel支持发送文件 
# (如果操作系统支持的话)。默认为on,如果你的服务器安装在网络文件系统 
# (NFS)上,请你关闭它。 
# 参见http://httpd.apache.org/docs-2.0/mod...enablesendfile 

# EnableSendfile off 


# ErrorLog:错误日志文件定位。 
# 如果你没有在<VirtualHost>内定义ErrorLog指令,这个虚拟主机的错误信息 
# 将记录在这里。如果你在那儿定义了ErrorLog,这些错误信息将记录在你所 
# 定义的文件里,而不是这儿定义的文件。 

ErrorLog logs/error_log 


# LogLevel:控制记录在错误日志文件中的日志信息数量。 
# 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 

LogLevel warn 


# 下面的指令为CustomLog指令定义格式别名。 

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 
LogFormat "%h %l %u %t \"%r\" %>s %b" common 
LogFormat "%{Referer}i -> %U" referer 
LogFormat "%{User-agent}i" agent 

# 你需要安装了mod_logio.c模块才能使用%I和%O。 
# LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 


# 指定接入日志文件的定位和格式(一般日志格式)。 
# 如果你没有在<VirtualHost>内定义这个指令,传输信息将记录在这里, 
# 如果你定义了这个指令,则记录在你指定的位置,而不是这儿定义的位置。 

CustomLog logs/access_log common 


# 如果你想要记录agent和referer信息,可以使用下面的指令 

# CustomLog logs/referer_log referer 
# CustomLog logs/agent_log agent 


# 如果你想要使用一个文件记录access,agent和referer信息, 
# 你可以如下定义这个指令: 

# CustomLog logs/access_log combined 


# ServerTokens 
# 这个指令定义包含在HTTP回应头中的信息类型。默认为“Full”, 
# 这表示在回应头中将包含模块中的操作系统类型和编译信息。 
# 可以设为列各值中的一个: 
# Full | OS | Minor | Minimal | Major | Prod 
# Full传达的信息最多,而Prod最少。 

ServerTokens Full 


# 随意的添加包含服务器版本和虚拟主机名字一行信息到server-generated输出页中 
# (内部错误文档,FTP目录列表,mod_status和mod_info输出等等,除了CGI错误 
# 或自定义的错误文档以外)。 
# 设为“EMail”将包含一个指向ServerAdmin的mailto:连接。 
# 可以为如下值:On | Off | EMail 

ServerSignature On 


# Aliases:在这时添加你需要的别名,格式如下: 
# Alias 别名 真实名 

# 注意,如果你在别名的未尾包含了“/”,那么在URL中也需要包含“/”。 
# 因此,“/icons”不是这个示例中的别名。 
# 如果别名中以“/”结尾,那么真实名也必须以“/”结尾, 
# 如果别名中省略了结尾的“/”,那么真实名也必须省略。 

# 我们使用别名“/icons/”来表示FancyIndexed目录列表,如果你不使用、 
# FancyIndexing,你可以注释掉它。 

# Alias /icons/ "/usr/local/apache2/icons/" 

# <Directory "/usr/local/apache2/icons"> 
# Options Indexes MultiViews 
# AllowOverride None 
# Order allow,deny 
## Allow from all 
# </Directory> 


# 这将改变ServerRoot/manual。这个别名提供了手册页所在的位置, 
# 即使你改变了你的DocumentRoot。如果你对有无手册页并不在意的话, 
# 你可以注释掉它。 

Alias /manual "/usr/loacl/apache2/manual" 

<Directory "/usr/local/apache2/manual"> 
Options Indexes FollowSymLinks MultiViews IncludesNoExec 
AddOutputFilter Includes html 
Order allow,deny 
Allow from all 
</Directory> 


# ScriptAlias:指定包含服务脚本的目录。 
# ScriptAliases 本质上与Aliases一样,除了这里的文档在请求时做为程序处理处理以外。 
# 尾部的“/”规则与Alias一样 

ScriptAlias /cgi-bin/ "/usr/loacl/apache2/cgi-bin/" 

# 这里是添加php 4支持的指令 
AddType application/x-httpd-php .php 
LoadModule php4_module modules/libphp4.so 

<IfModule mod_cgid.c> 

# 添加mod_cgid.c设置,mod_cgid提供使用cgid进行通讯的UNIX套接字的 
# 脚本接口路径。 

# Scriptsock logs/cgisock 
</IfModule> 


# 将"/usr/local/apache2/cgi-bin"改为你的ScriptAliased指定的CGI目录, 
# 如果你配置了的话。 

<Directory "/usr/local/apache2/cgi-bin"> 
AllowOverride None 
Options None 
Order allow,deny 
Allow from all 
</Directory> 


# Redirect允许你告诉客户端使用存在于服务器名字空间中的文档, 
# 而不是现在的,这帮助客户定位那些改变了位置的文档。 
# 例如: 
# Redirect permanent /foo http://www.example.com/bar 


# 控制server-generated目录列表显示的指令 



# IndexOptions:控制server-generated目录列表显示特征。 

IndexOptions FancyIndexing VersionSort 


# AddIcon* 指令告诉服务器不同扩展名的图象文件如何显示, 
# 只适用于FancyIndexed指令 

AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip 
AddIconByType (TXT,/icons/text.gif) text/* 
AddIconByType (IMG,/icons/image2.gif) image/* 
AddIconByType (SND,/icons/sound2.gif) audio/* 
AddIconByType (VID,/icons/movie.gif) video/* 

AddIcon /icons/binary.gif .bin .exe 
AddIcon /icons/binhex.gif .hqx 
AddIcon /icons/tar.gif .tar 
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv 
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip 
AddIcon /icons/a.gif .ps .ai .eps 
AddIcon /icons/layout.gif .html .shtml .htm .pdf 
AddIcon /icons/text.gif .txt 
AddIcon /icons/c.gif .c 
AddIcon /icons/p.gif .pl .py 
AddIcon /icons/f.gif .for 
AddIcon /icons/dvi.gif .dvi 
AddIcon /icons/uuencoded.gif .uu 
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl 
AddIcon /icons/tex.gif .tex 
AddIcon /icons/bomb.gif core 

AddIcon /icons/back.gif .. 
AddIcon /icons/hand.right.gif README 
AddIcon /icons/folder.gif ^^DIRECTORY^^ 
AddIcon /icons/blank.gif ^^BLANKICON^^ 


# DefaultIcon 为那些没有显式定义图标的文件提供处理 

DefaultIcon /icons/unknown.gif 


# AddDescription允许你在server-generated索引后放置一个简短的说明。 
# 只对FancyIndexed指令有效。 
# 格式:AddDescription "说明" 文件名 

# AddDescription "GZIP compressed document" .gz 
# AddDescription "tar archive" .tar 
# AddDescription "GZIP compressed tar archive" .tgz 


# ReadmeName指定服务器默认查找的README文件的名字,并添加到目录列表中 

# HeaderName指定目录列表前缀文件的文件名 
ReadmeName README.html 
HeaderName HEADER.html 


# IndexIgnore指定目录索引忽略并且不包含在列表中的文件名集合, 
# 支持shell类型的通配符。 

IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t 


# AddEncoding允许你在信息传送中使用(Mosaic/X 2.1+)解压缩信息, 
# 注意:不是所有的浏览器都支持这个选项。 
# 尽管名字相似,但是下列的指令与上面的FancyIndexing定制指令不同。 

AddEncoding x-compress Z 
AddEncoding x-gzip gz tgz 


# DefaultLanguage和AddLanguage允许你指定文档的语言。 
# 这使你可以让用户用容易理解的语言浏览文档。 

# 指定默认的语言,这意味着所有没有指定语言的包都将使用该语言。 
# 多数情况下,你也许并不想设置它,除非你确信这样做是正确的。 
# 通常,不使用确定的语言比使用错误的语言要好。 

# DefaultLanguage nl 

# 注意1:作为语言关键字的词缀毫无疑问是不能一样的--采用波兰 
# 文的文档(网络标准语言代码是pl)将希望使用“AddLanguage pl .po” 
# 来避免与perl脚本的一般词缀产生二义性。 

# 注意2: 下面的例子举例说明在一些范例中语言的二字符缩写与它的国家 
# 的二字符缩写不相同,例如 “Danmark/dk” 和 “Danmark/da” 的比较. 

# 注意3: 在 “ltz” 的情况下我们使用三字符词缀,违犯了 RFC的规定, 
# 运行中将修复它并使用RFC1766标准取得参考数据。 

# Danish (da) - Dutch (nl) - English (en) - Estonian (et) 
# French (fr) - German (de) - Greek-Modern (el) 
# Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (ko) 
# Portugese (pt) - Luxembourgeois* (ltz) 
# Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz) 
# Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja) 
# Russian (ru) - Croatian (hr) 

AddLanguage da .dk 
AddLanguage nl .nl 
AddLanguage en .en 
AddLanguage et .et 
AddLanguage fr .fr 
AddLanguage de .de 
AddLanguage he .he 
AddLanguage el .el 
AddLanguage it .it 
AddLanguage ja .ja 
AddLanguage pl .po 
AddLanguage ko .ko 
AddLanguage pt .pt 
AddLanguage nn .nn 
AddLanguage no .no 
AddLanguage pt-br .pt-br 
AddLanguage ltz .ltz 
AddLanguage ca .ca 
AddLanguage es .es 
AddLanguage sv .sv 
AddLanguage cz .cz 
AddLanguage ru .ru 
AddLanguage tw .tw 
AddLanguage zh-tw .tw 
AddLanguage hr .hr 

# LanguagePriority允许你在会话过程中优先使用一些语言。 

# 以优先次序递减的方式列出它们。我们或多或少地采用按字母排列顺序的方式 
# 排列它们。也许你想要改变这个顺序。 
LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw 


# ForceLanguagePriority 允许你为MULTIPLE CHOICES(Prefer)[在通讯的情况下] 
# 或NOT ACCEPTABLE(Fallback)[没有可接受的语言匹配的情况]提供一个结果页。 

ForceLanguagePriority Prefer Fallback 


# 为发送出的所有页指定默认的字符集,这总是一个好主意,并且为你的 
# web站点的国际化打开了大门,这不正是你曾经想要的吗。同样地,指定 
# 默认字符集有一些小的损害,如一个使用iso-8859-1(latin1)标准命令 
# 的页面,除非以别的方式指定例如你仅仅以显式方式声明它。 
# 也有一些与那些总是鼓励你使用默认字符集的javascropt和URL语法有关 
# 的浏览器安全原因。 

#AddDefaultCharset ISO-8859-1 
AddDefaultCharse GB2312 


# 一般以文件扩展名的方式使用字符集。也许你想要避免与语言扩展发生 
# 碰撞,除非你在每次改变后都做了很好的测试。 
# 参见http://www.iana.org/assignments/character-sets以取得字符集 
# 的名字列表和它们各自的RFCs。 

AddCharset ISO-8859-1 .iso8859-1 .latin1 
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen 
AddCharset ISO-8859-3 .iso8859-3 .latin3 
AddCharset ISO-8859-4 .iso8859-4 .latin4 
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru 
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb 
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk 
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb 
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk 
AddCharset ISO-2022-JP .iso2022-jp .jis 
AddCharset ISO-2022-KR .iso2022-kr .kis 
AddCharset ISO-2022-CN .iso2022-cn .cis 
AddCharset Big5 .Big5 .big5 
# 对于俄语,使用了多个字符集(如何使用主要依靠客户端): 
AddCharset WINDOWS-1251 .cp-1251 .win-1251 
AddCharset CP866 .cp866 
AddCharset KOI8-r .koi8-r .koi8-ru 
AddCharset KOI8-ru .koi8-uk .ua 
AddCharset ISO-10646-UCS-2 .ucs2 
AddCharset ISO-10646-UCS-4 .ucs4 
AddCharset UTF-8 .utf8 


# 下面的字符集没有映射到一个特定的标准(iso)上,但是它们在浏览器 
# 中被广泛的支持。注意那些大写字母。 
# (它不应该,但是它是为兼容一些浏览器而做) 

# 参见http://www.iana.org/assianments/character-sets以取得 
# 它们的列表。但是浏览器支持较少。 

AddCharset GB2312 .gb2312 .gb 
AddCharset utf-7 .utf7 
AddCharset utf-8 .utf8 
AddCharset big5 .big5 .b5 
AddCharset EUC-TW .euc-tw 
AddCharset EUC-JP .euc-jp 
AddCharset EUC-KR .euc-kr 
AddCharset shift_jis .sjis 


# AddType允许你为指定的文件类型添加或覆盖mime.types文件中配置的MIME 

AddType application/x-tar .tgz 
AddType image/x-icon .ico 


# AddHandler允许你映射确定的文件扩展名到“handlers”: 
# 与文件类型无关的行为。这既能编译到服务器中也可以添加到Action指令 
# 中(看下面)。 
# 为了在ScriptAliased指令指定的以外使用CGI脚本: 
#(要使它可用,你还需要在Options中添加“ExecCGI”。 

# AddHandler cgi-script .cgi 


# 对于那些包含他们自己的HTTP头的文件 

# AddHandler send-as-is asis 


# 对于server-parsed imagemap文件: 

# AddHandler imap-file map 


# agemap 文件: 

#AddHandler imap- 文件映像 


# 对于类型映像转移资源) 
#(这是默认的设定以允许Apache的“It Worked”页能多种语言分发)。 

AddHandler type-map var 


# 过滤器允许你在将它发送到客户端前进行处理。 

# 为了在服务器端分析包含(SSI)的.shtml文档: 
# (要执行这个指令,你还需要在Options指令中添加“Includes”。) 

# AddType text/html .shtml 
# AddOutputFilter INCLUDES .shtml 


# Action让你定义当调用匹配的媒体文件时将要执行的脚本。这将减少 
# 那些经常使用的CGI脚本的URL路径名的重复输入。 
# 格式:Action media/type /cgi-script/location 
# 格式:Action handler-name /cgi-script/location 



# 可配置的错误应答有三种风格: 
# 1)plain text 2)local redirects 3) external redirects 

# 一些示例: 
# ErrorDocument 500 "The server made a boo boo." 
# ErrorDocument 404 /missing.html 
# ErrorDocument 404 "/cgi-bin/missing_handler.pl" 
# ErrorDocument 402 http://www.example.com/subscription_info.html 



# 综合应用这些指令,我们可以创建一个国际化的出错应答。 

# 我们使用Alias来重定向任意/error/HTTP_<error>.html.var应答到 
# 我们的多语言错误消息集合。使用正确的文本替代它。 

# 通过加入下面的行,你就能够改变这些消息的显示,而不必改变 
# HTTP_<error>.html.var文件。 

# Alias /error/include/ "/your/include/path/" 

# 以将/usr/local/apache2/error/include/下的文件拷贝到/your/inclue/path/下 
# 开始,你可以创建你自己的文件集合,甚至是其于每个虚拟主机的。 
# 不管你的ServerSignature如何设置,默认的包含文件将显示你的 
# Aapche版本号和你的ServerAdmin邮件地址 

# 国际化的错误文档需要mod_alias,mod_include和mod_negotiation三个 
# 模块。要激活它们,取消下面30行的注释符号 

# Alias /error/ "/usr/local/apache2/error/" 

# <Directory "/usr/local/apache2/error"> 
# AllowOverride None 
# Options IncludesNoExec 
# AddOutputFilter Includes html 
# AddHandler type-map var 
# Order allow,deny 
# Allow from all 
# LanguagePriority en de es fr it nl sv 
# ForceLanguagePriority Prefer Fallback 
# </Directory> 

# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var 
# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var 
ErrorDocument 403 /error.php 
# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var 
# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var 
# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var 
# ErrorDocument 410 /error/HTTP_GONE.html.var 
# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var 
# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var 
# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var 
# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var 
# ErrorDocument 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var 
# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var 
# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var 
# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var 
# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var 
# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var 


# 下面的命令更改标准的HTTP应答行为以处理己知的浏览器问题。 

BrowserMatch "Mozilla/2" nokeepalive 
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 
BrowserMatch "RealPlayer 4\.0" force-response-1.0 
BrowserMatch "Java/1\.0" force-response-1.0 
BrowserMatch "JDK/1\.0" force-response-1.0 


# 下面命令关闭对那些没有尾部“/”的目录的非GET请求的重定向, 
# 这些命令修复了微软的采用DAV方法不能正确处理重定向的WEB文件夹的问题。 
# Apple下的DAV文件系统和Gnome下的VFS对DAV的支持也是采用这样的方法 
# 进行处理的。 

BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully 
BrowserMatch "^WebDrive" redirect-carefully 
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully 
BrowserMatch "^gnome-vfs" redirect-carefully 


# 允许你使用URL:http://servername/server-status来通过mod_status生 
# 成并报告服务器状态信息。改变.example.com为你自己的域名。 

# <Location /server-status> 
# SetHandler server-status 
# Order deny,allow 
# Deny from all 
# Allow from .example.com 
# </Location> 


# 允许使用URL:http://servername/server-info来远程报告服务器配置信息 
# (需要mod_info.c支持)。改变“.example.com”为你自己的域名。 

# <Location /server-info> 
# SetHandler server-info 
# Order deny,allow 
# Deny from all 
# Allow from .example.com 
# </Location> 


# 代理服务器命令,去掉下面的行使代理服务可用。 

# <IfModule mod_proxy.c> 
# ProxyRequests On 
# <Proxy *> 
# Order deny,allow 
# Deny from all 
# Allow from .example.com 
# </Proxy> 


# 安装或关闭HTTP/1.1“通道”头处理。 
# (“Full”添加服务器版本信息,“Block”移掉所有输出“通道”头信息。 
# 可以设为下面各选项之一:Off | On | Full | Block 

# ProxyVia On 

# 最好为代理服务安装高速缓冲,去掉下面几行的注释符号: 
# (没有CacheRoot则不缓冲) 

# CacheRoot "/usr/local/apache2/proxy" 
# CacheSize 5 
# CacheGcInterval 4 
# CacheMaxExpire 24 
# CacheLastModifiedFactor 01 
# CacheDefaultExpire 1 
# NoCache a-domain.com another-domain.edu joes.garage-sale.com 

# </IfModule> 
# 代理命令结束。 


# 附加的特定模块配置。 

<IfModule mod_ssl.c> 
Include conf/ssl.conf 
</IfModule> 

## 第三区:虚拟主机 

# VirtualHost:你可以通过设置虚拟主机容器以实现在你的主机上保有多个 
# 域名/主机名。大多数配置信息只使用基于名字的虚拟主机,因此服务器 
# 不必担心IP地址的问题,下面的命令以*号代替虚拟主机名。 

# 在你试着配置你的虚拟主机以前,请参见 
# URL:http://httpd.apache.org/docs-2.0/vhosts/>以取得更多的信息。 

# 你可以使用命令行选项“-S”来检验你的虚拟主机配置。 


# 使用基于名字的虚拟主机。 

# NameVirtualHost * 


# 虚拟主机示例: 
# 几乎所有的Apache命令都可以在虚拟主机容器中使用。 
# 第一个虚拟主机区是用于向服务名未知的请求进行应答的配置。 

# <VirtualHost *> 
# ServerAdmin webmaster@dummy-host.example.com 
# DocumentRoot /www/docs/dummy-host.example.com 
# ServerName dummy-host.example.com 
# ErrorLog logs/dummy-host.example.com-error_log 
# CustomLog logs/dummy-host.example.com-access_log commom 
# </virtualHost>


    
[3]PHP 字符串操作入门教程
    来源: 互联网  发布时间: 2013-11-30
无论哪种语言,字符串操作都是一个重要的基础,往往是简单而重要。正像人说话一样,一般有形体(图形界面),有语言(print 字符串?),显然字符串能解释更多的东西。PHP提供了大量的字符串操作函数,功能强大,使用也比较简单,详细请参看 http://cn2.php.net/manual/zh/ref.strings.php . 以下将简单的讲述它的功能和特性。  

弱类型 

PHP是弱类型语言,所以其它类型的数据一般可以直接应用于字符串操作函数里,而自动转换成字符串类型,进行处理,如: 


echo substr("1234567", 1, 3);  
和 
echo substr(123456,1, 3);  
是一样的 


定义 

一般用双引号或单引号标识一个字符串。比如 


$str = "i love u";  
$str = 'i love u';  

它者两者是有一些区别的。后者将一切单引号的内容都会当作字符处理;前者则不然。比如 


$test = "iwind";  
$str = "i love $test";  
$str1 = 'i love $test';  
echo $str; //将得到 i love iwind  
echo $str1; //将得到 i love $test  

同样的以下两个例子的行为也不一样的: 


echo "i love test"; // 将得到 i love est,已经将t视为转义  
echo 'i love test'; // 将得到 i love test  

从而可以简单认为双引号里的内容是经过“解释”过的,单引号的是“所见即所得”的(特殊地,''会被认作一个'')。显而易见,双引号形式的更为灵活一些,当然单引号会适用于一些特殊的场合,这里就不作阐述了。 

输出 

PHP里的输出最常用的是echo,print.两者都不是真正的函数,而是语言构造,所以调用时不必用双括号(比如 


echo("test");print("test")).在输出的时候两者都可以实现赋值: 
echo $str="test"; //一方面输出test,一方面把"test"赋给字符串变量 $str  
print $str="test";  

两者除了名字不一样外,还是有其它区别的。print具有返回值,一直返回1,而echo没有,所以echo比print要快一些: 


$return = print "test";  
echo $return; // 输出1  

也正因为这个原因,print能应用于复合语句中,而echo不能: 


isset($str) or print "str 变量未定义"; // 将输出"str 变量未定义"  
isset($str) or echo "str 变量未定义";// 将提示分析错误  



echo一次可输出多个字符串,而print则不可以: 
echo "i ","love ","iwind"; // 将输出 "i love iwind"  
print "i ","love ","iwind"; // 将提示错误 


echo,print还可以输出被称作“文档句法”的字符串,句法如: 
echo <<< 标签名称  
...  
字符串内容  
...  
标签名称;  
比如  


echo <<< test  
i love iwind  
test;  

要注意的是语句开始和结束的两个标签名称是一样的,且后一个标签名称前不能有空白,即要顶格写。文档句法输出的内容识别变量名称和常用符号,大致形同双引号的作用。 

输出echo,print外,PHP还提供了一些格式化字符串的函数,比如printf,sprintf,vprintf,vsprintf,在这里不作详解。 
连接 

两个以上的字符串连接用"."操作符,依字符串的顺序形成新的字符串。 


$str = "i " . "love " . "iwind";  
这里的$str 就是 "i love iwind";字符串。当然,还可以使用 .= 操作符: 
$str = ""; // 初始化  
$str .= "i love iwind";  

这里用到了初始化,是因为未定义变量在使用时会产生一个notice错误,""或者null可以简单地代表空字符串。 

长度 

PHP提供strlen函数来计算字符串的长度: 


$str = "test";  
echo strlen($str); // 将输出 4 

有点奇怪的是strlen将中日等汉字以及全角字符都当作两个或四个长度计算。好在mbstring或icon两个函数可以帮助解决这个问题,比如: 


$len = iconv_strlen($str, "GBK");  
$len = mb_strlen($str, "GBK");  

注:mbstring模块提供了大量的对含有多字节字符的字符串的处理函数,推荐多加应用,由于这篇文章讲的是字符串入门,所以不打算详细解说。 

分隔与连接 

PHP允许你把一个字符串按照一个分隔符进行分隔成一个数组,或者将一个数组组合成一个字符串。看下面的例子: 


$str = "i love iwind";  
$array = explode(" ", $str);  

上面的explode函数,就把$str字符串按空格字符进行分隔,结果返回一个数组 $array:array("i", "love", "iwind").与explode函数有类似功能的有:preg_split(), spliti(), split()等函数。 

与此相反的,implode和join则能把一个数组结合成一个字符串,他们是具有完全相同功能的函数。 


$array = array("i", "love", "iwind");  
$str = implode(" ", $array);  

例中的implode函数将数组$array的每个元素用空格字符进行连接,返回一个字符串 $str: "i love iwind". 

裁剪 

一个字符串首和尾,可能不是你想要的部分,就可以用trim,rtrim,ltrim等函数,分别去除一个字符串两端空格,一个字符串尾部空格,一个字符串首部空格。 


echo trim(" i love iwind "); // 将得到 "i love iwind"  
echo rtrim(" i love iwind "); // 将得到 " i love iwind"  
echo ltrim(" i love iwind "); // 将得到 "i love iwind " 

其实这三个参数不仅可以去除字符串首尾的空格,还可以去除它们的第二个参数指定的字符,如: 


echo trim(",1,2,3,4,", ","); // 将得到 1,2,3,4 两端的","号被裁掉了。  

有时还会看到有人使用chop这个函数,其实它是rtrim的同义函数。 
大小写 

对于英文字母来说,可以用strtoupper,strtolower将其转变成大写或小写。 


echo strtoupper("i love iwind"); // 将得到 I LOVE IWIND  
echo strtolower("I LOVE IWIND"); // 将得到 i love iwind  

比较 

一般可以用 !=, == 比较两个对象是否相等,只所以说是两个对象,是因为它们不一定全部为字符串,也可以为整型等等。比如 


$a = "joe";  
$b = "jerry";  
if ($a != $b)  
{  
   echo "不相等";  
}  
else  
{  
   echo "相等";  
}  

如果用 !==,===(可以看到多了一个等号)比较的话,两个对象的类型要严格相等才能返回true;否则用==,!=则会将字符串自动转换成相应的类型,以便进行比较. 


22 == "22"; // 返回 true  
22 === "22"; // 返回false  
正因为这样,所以我们的程序时常会发生一些想不到的“意外”: 
0 == "我爱你"; // 返回true  
1 == "1 我爱你";// 返回true  

PHP里还有这样一组用于字符串比较的函数:strcmp,strcasecmp,strncasecmp(), strncmp(),它们都是如果前者比后者大,则返回大于0的整数;如果前者比后者小,则返回小于0的整数;如果两者相等,则返回0.它们比较的原理与其它语言的规则都是一样的。 
strcmp是用于区分大小写(即大小写敏感)的字符串比较: 


echo strcmp("abcdd", "aBcde"); // 返回 1 (>0), 比较的是 "b"和"B" 

strcasecmp用于不区分大小写的字符串比较: 


echo strcasecmp("abcdd", "aBcde"); // 返回 -1 (<0), 比较的是"d"和"e"  

strncmp用于比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度: 


echo strncmp("abcdd", "aBcde", 3); // 返回 1 (>0), 比较了 abc 和 aBc  

strncasecmp用于不区分大小写的比较字符串的一部分,从字符串的开头开始比较,第三个参数,为要比较的长度: 


echo strncasecmp("abcdd", "aBcde", 3); // 返回 0, 比较了 abc 和 aBc, 由于不区分大小写,所以两者是相同的。  

还有一种情况是单单比较字符串大小,达不到我们预定的要求,比如照常理 10.gif 会比 5.gif 大,但如果应用上面几个函数,就会返回 -1,即表示 10.gif比5.gif,针对这种情况,PHP提供了两个自然对比的函数strnatcmp,strnatcasecmp: 


echo strnatcmp("10.gif", "5.gif"); // 返回 1 (>0)  
echo strnatcasecmp("10.GIF", "5.gif"); // 返回 1 (>0)  

替换 

替换的意义在于将一个字符串的一部分进行改变,使之成为别外一个新的字符串,以满足新的要求。PHP里通常用str_replace("要替换的内容", "要取代原内容的字符串", "原字符串")进行替换。 


echo str_replace("iwind", "kiki", "i love iwind, iwind said"); // 将输出 "i love kiki, kiki said"  
即将 原字符串中的所有"iwind"都替换成了"kiki". 

str_replace是大小写敏感的,所以对你不能设想用 str_replace("IWIND", "kiki",...)替换原字符串中的"iwind". 

str_replace还可以实现多对一,多对多的替换,但无法实现一对多的替换: 


echo str_replace(array("iwind", "kiki"), "people", "i love kiki, iwind said");  
将会输出 
i love people, people said 
第一个参数中的array("iwind", "kiki")都被替换成了"people" 

echo str_replace(array("iwind", "kiki"), array("gentle man", "ladies"), "i love kiki, iwind said");  
输出 i love ladies, gentle man said 。也就是说第一个数组中的元素被第二个数组中的相对应的元素替换掉了,如果有一个数组比另一个数组元素数要少,那么不足的都会当作空来处理。 

与此有些类似的是strtr,用法请参阅手册. 

此外,PHP还提供了substr_replace,实现替换一部分的字符串。语法如下: 
substr_replace (原字符串, 要替代的字符串, 开始替换的位置 [, 替换的长度]) 
其中,开始替换的位置从0开始计算,应该小于原字符串的长度。要替换的长度是可选的。 
echo substr_replace("abcdefgh", "DEF", 3); // 将输出 "abcDEF"  
echo substr_replace("abcdefgh", "DEF", 3, 2); // 将输出 "abcDEFfgh"  
第一个例子中,从第三个位置(即"d")开始替换,从而把 "defgh"都替换成了“DEF” 
第二个例子中,也是从第三个位置(即"d")开始替换,但只能替换2个长度,即到e,所以就把"de"替换成了"DEF". 

PHP还提供了preg_replace,preg_replace_callback,ereg_replace,eregi_replace等函数应用正则表达式来完成字符串替换,用法请参考手册。 
查找与匹配 

PHP里用于查找或者匹配或者定位的函数非常多,它们都有不同的意义。这里只讲述用得比较多的strstr,stristr.后者与前者的功能,返回值都一样,只是不区分大小写。 
strstr("母字符串", "子字符串")用来查找子字符串在母字符串中第一次出现的位置,并返回母字符串中从子字符串开始到母字符串结束的部分。比如 


echo strstr("abcdefg", "e"); //将输出 "efg"  
如果找不到子字符串,则返回空。因为可以用来判断一个字符串中是否含有另外一个字符串: 
$needle = "iwind";  
$str = "i love iwind";  
if (strstr($str, $needle))  
{  
   echo "里面有 iwind";  
}  
else  
{  
   echo "里面没有 iwind";  
}  
将会输出"里面有 iwind" 

HTML相关 

1,htmlspecialchars($string) 

这是它的最简单用法,将字符串中的一些特殊字符(顾名思义)&,',"<,>转换成它们对应的HTML实体形式: 


$str = "i love <font color="red">kiki</font>, iwind said.";  
echo htmlspecialchars($str);  

将会输出 
i love kiki, iwind said. 

2,htmlentities($string) 

将所有能转换成实体形式的字符都转换成实体形式。 

3,html_entity_decode($string); 

PHP4.3.0以后加入的具有与htmlentities($string)相反的功能。 

4,nl2br($string) 

将字符串中所有换行符转变成< b r /> + 换行符。如: 


$str = "i love kiki,\n iwind said.";  
echo nl2br($str);  

将会输出 
i love kiki, 

iwind said. 

加密 

加密字符串最常用的就是md5了,它将一个字符串转换成一个长32位的唯一的字符串。 


echo md5("i love iwind"); // 将输出 "2df89f86e194e66dc54b30c7c464c21c"  

PHP5给md5加了第二个参数,从而使它可以输出16位的加密后的字符串。 

到这里,这篇字符串操作入门教程就算结束了,但上面讲的这些还只是它的冰山一角,特别是PHP5之后增加了大量的新功能,所以需要我们不断的去学习它才有可能很好的应用。

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序方法大全(脚本学堂整理奉献)
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3