发送一个原始 HTTP 标头[Http Header]到客户端。标头 (header) 是服务器以 HTTP 协义传 HTML 资料到浏览器前所送出的字串,在标头与 HTML 文件之间尚需空一行分隔
例1
代码如下 | 复制代码 |
<?PHP |
禁止页面在IE中缓存
代码如下 | 复制代码 |
<?PHP |
实现文件下载
代码如下 | 复制代码 |
header('Content-Type: application/octet-stream');//设置内容类型 |
php的函数header()可以向浏览器发送Status标头,
如
代码如下 | 复制代码 |
header(”Status: 404 Not Found”)。 |
但是我发现实际上浏览器返回的响应却是:
代码如下 | 复制代码 |
// ok //设置一个404头: //设置地址被永久的重定向
|
注意事项有以下几点:
•Location和":"之间不能有空格,否则会出现错误(注释:我刚测试了,在我本地环境下,没有跳转页面,但是也没有报错,不清楚什么原因);
•在用header前不能有任何的输出(注释:这点大家都知道的,如果header之前有任何的输出,包括空白,就会出现header already sent by xxx的错误);
•header 后面的东西还会执行的;
PHP函数split()的基本语法为
array split ( string $pattern, string $string [, int $limit] )。
例
代码如下 | 复制代码 |
<?php list($user, $pass, $uid, $gid, $extra) = split (":", $passwd_line, 5); |
解析可能用斜线,点,或横线分割的日期:
例 2
代码如下 | 复制代码 |
|
str_split() 函数
如果指定了可选的 split_length 参数,返回数组中的每个元素均为一个长度为 split_length 的字符块,否则每个字符块为单个字符。
如果 split_length 小于 1,返回 FALSE。如果 split_length 参数超过了 string 超过了字符串 string 的长度,整个字符串将作为数组仅有的一个元素返回。
代码如下 | 复制代码 |
<?php $str = "Hello Friend"; $arr1 = str_split($str); print_r($arr1); ?> |
以上例程会输出:
代码如下 | 复制代码 |
Array Array |
chunk_split()函数
string chunk_split ( string $body [, int $chunklen [, string $end ]] )
使用此函数将字符串分割成小块非常有用。例如将 base64_encode() 的输出转换成符合 RFC 2045 语义的字符串。它会在每 chunklen(默认为 76)个字符后边插入 end(默认为“ ”)。此函数会返回新的字符串,而不会修改原有字符串。
Example #1 chunk_split() 例子
代码如下 | 复制代码 |
<?php |
explode — 使用一个字符串分割另一个字符串
Example #1 explode() 例子
代码如下 | 复制代码 |
<?php // 示例 2 ?> |
函数用法
int preg_match_all ( string pattern, string subject, array matches [, int flags] )
例1
代码如下 | 复制代码 |
<?php 本例将输出: |
例2
URL 中取出域名
代码如下 | 复制代码 |
<?php 本例将输出: domain name is: PPP.NET |
preg_match字符串长度问题
preg_match正则提取目标内容,死活有问题,代码测得死去活来。
后来怀疑PHP 的preg_match有字符串长度限制,果然,发现“pcre.backtrack_limit ”的值默认只设了100000。
解决办法:
代码如下 | 复制代码 |
ini_set('pcre.backtrack_limit', 999999999); |
注:这个参数在php 5.2.0版本之后可用。
另外说说关于:pcre.recursion_limit
pcre.recursion_limit是PCRE的递归限制,这个项如果设很大的值,会消耗所有进程的可用堆栈,最后导致PHP崩溃。
也可以通过修改配置来限制:
代码如下 | 复制代码 |
ini_set('pcre.recursion_limit', 99999); |
实际项目应用中,最好也对内存进行限定设置:ini_set('memory_limit', '64M'); , 这样就比较稳妥妥嘎。
本文章给大家来详细介绍在php中使用iconv函数来转换字符串编码方法与关于iconv函数bug分析,有需要的朋友可能参考参考。iconv不是php的默认函数,也是默认安装的模块。需要安装才能用的。
如果是windows2000+php,你可以修改php.ini文件,将extension=php_iconv.dll前的";"去掉,同时你要copy你的原php安装文件下的iconv.dll到你的winnt/system32下
用法如下:
代码如下 | 复制代码 |
$string = "亲爱的朋友欢迎访问胡文芳的博客,希望给您带来一点点的帮助!"; iconv("utf8","gbk",$string)//将字符串string 编码由utf8转变成gbk; |
扩展如下:
代码如下 | 复制代码 |
echo $str= '你好,欢迎访问胡文芳的博客,该博客记录一个程序员的成长过程!'; |
iconv函数一个小bug
试试把以下这段字符串用iconv转换一下看看效果。
代码如下 | 复制代码 |
$str="www.111cn.net,ok!the string is € .我要转换他!⊙●○①⊕◎Θ⊙¤?"; |
在我的电脑中返回的结果是第一个特殊字符以后的字符都不能显示。
iconv有两个参数:分别是TRANSLIT 和IGNORE ,分别的含义是TRANSLIT 表示如果目标编码里面不能翻译原编码,那么就直接找一个类似的最相近的字符或者字符串替代,例如€可能会被替换为EUR;而IGNORE 遇到目标字符集不能翻译的原始字符则直接跳过忽略,不返回false。
使用方法如下:
代码如下 | 复制代码 |
$infocontent=iconv("utf-8","gbk//IGNORE",$infocontent); 或者 $infocontent=iconv("utf-8","gbk//TRANSLIT",$infocontent); |
鉴于此,我认为iconv应该提供一个默认的参数IGNORE,避免开发者使用不善时出现返回空字符串的情况。
在php中htmlspecialchars, 将特殊字元转成 HTML 格式,而htmlentities,将所有的字元都转成 HTML 字串 了,下面我来分别简单的介绍。htmlentities用法
代码如下 | 复制代码 |
<html> John & 'Adams' |
htmlspecialchars用法
& (和) 转成 &
" (双引号) 转成 "
< (小于) 转成 <
> (大于) 转成 >
例
代码如下 | 复制代码 |
<html> |
他们的区别
这两个函数的功能都是转换字符为HTML字符编码,特别是url和代码字符串。防止字符标记被浏览器执行。使用中文时没什么区别,但htmlentities会格式化中文字符使得中文输入是乱码
htmlentities转换所有的html标记,htmlspecialchars只格式化& ' " < 和 > 这几个特殊符号
代码如下 | 复制代码 |
$str = '<a href="demo.php?m=index&a=index&name=中文">测试页面</a>'; echo 'htmlentities指定GB2312编码:'.htmlentities($str,ENT_COMPAT,"GB2312").''; echo 'htmlentities未指定编码:'.htmlentities($str).''; $str = '<a href="demo.php?m=index&a=index&name=中文">测试页面</a>'; echo htmlspecialchars($str).''; |
效果:
代码如下 | 复制代码 |
htmlentities指定GB2312编码:<a href="demo.php?m=index&a=index&name=中文">测试页面</a> htmlentities未指定编码:<a href="demo.php?m=index&a=index&name=ÖÐÎÄ">²âÊÔÒ³Ãæ</a> <a href="demo.php?m=index&a=index&name=中文">测试页面</a> |