php substr()函数截取中文字符串乱码
php截取中文字符串出现乱码,这是最近发现的事情,先前我曾经写过一篇关于自动生成meta信息的文章
,那篇关于利用php截取文章前多少字作为description方法,但是出现了IE6无法加载CSS的现象,这里
做一个补充。
首先要明确这么一个问题,之所以会出现IE6偶尔无法加载CSS的现象,是因为文件出现了乱码,导致后
面的加载CSS的link无法被IE6正确解析。因此就看到了一个纯HTML页面,没有CSS,赤裸裸!
明确了问题,剩下的问题就好解决了,就是防止乱码,既然万戈所提供的函数出现了乱码,就重新去找
了一个php函数来解决这个乱码的问题。
substr()函数可以分割文字,但要分割的文字如果包括中文字符往往会遇到问题。
mb_substr()这个函数的用法与substr()相似,只是在最后要加入多一个参数,以设定字符串的编码。
通过这里大几就应该理解我改进万戈方法的原因了~~
下面再介绍几个更高级处理办法
例1
代码如下 | 复制代码 |
function func_chgtitle($str,$len) { //$length我们允许字符串显示的最大长度 } |
例2
字符串编码为UTF-8的,一个中文字符占三个字节:
public static function chinesesubstr($str, $start, $len) { // $str指字符串,$start指字符串的
起始位置,$len指字符串长度
$strlen = $start + $len; // 用$strlen存储字符串的总长度,即从字符串的起始位置到字符
串的总长度
代码如下 | 复制代码 |
for($i = $start; $i < $strlen;) { 值大于0xa0,则表示汉字 于一个汉字 变量$tmpstr |
清除了bom,代码也是顶行开始写的,gd库也是开启的,从这里来看估计不是gd库的问题了,可能出在程序那句代码上。
生成验证码的代码:
代码如下 | 复制代码 |
<?php
|
感觉是不是没有问题了,后来百度发现一高人说关键是加入了ob_clean,了这个让我想了原因。
解决办法
ob_clean(); //关键代码,防止出现'图像因其本身有错无法显示'的问题。
加到 header 输出之前
代码如下 | 复制代码 |
|
调用mt_rand()这个方法可以生成随机数字,参数是范围的最小值和最大值,函数会返回最小值和最大值之间的一个随机数字。
要生成真正的随机数,对于计算来说不是一件容易的事。
php中两种方法可以生成随机数,一个经典的函数叫rand(),另一个更出色的函数是mt_rand()。
例1
代码如下 | 复制代码 |
或者 <?php |
例2
代码如下 | 复制代码 |
srand((double)microtime()*1000000); |
例3
代码如下 | 复制代码 |
/** |
写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
代码如下 | 复制代码 |
$dirs='e:/pdf'; function FileShow($dirs) { $dir=opendir($dirs); while ($f=readdir($dir)) { if($f != '.' && $f != '..'){ $file=$dirs.'/'.$f; if(is_file($file)){ echo 'FileName:'.$file.'<br />'; //echo 'FileName:'.iconv('gb2312','utf-8',$file).'<br />'; }else{ FileShow($file); } } } } FileShow($dirs); |
一:更推荐这种方法,因为它可以把www.111cn.net原来所有的url都转到111cn.net新的地址上
代码如下 | 复制代码 |
<?php $the_host = $_SERVER['HTTP_HOST']; $request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ''; if($the_host == 'www.111cn.net') { header('HTTP/1.1 301 Moved Permanently'); header('Location: http://111cn.net'.$request_uri);// } ?> |
二:单页多站的Php301重定向代码,www.111cn.net和111cn.net则301到index.php上,www.111cn.net则301到111cn.net上,否则转到错误页
代码如下 | 复制代码 |
if(($HTTP_HOST=="www.111cn.net")or($HTTP_HOST=="111cn.net")) |
附上其它跳转办法
代码如下 | 复制代码 |
//定义编码 //Atom //CSS //Javascript //JPEG Image //JSON //PDF //RSS //Text (Plain) //XML // ok //设置一个404头: //设置地址被永久的重定向 //转到一个新地址 //文件延迟转向: //当然,也可以使用html语法实现 // override X-Powered-By: PHP: //文档语言 //告诉浏览器最后一次修改时间 //告诉浏览器文档内容没有发生改变 //设置内容长度 //设置为一个下载类型 // 对当前文档禁用缓存 //设置内容类型: //显示登陆对话框 |
跳转要注意以下几点,有助于解决一些新手经常遇到的问题
1、location和“:”号间不能有空格,否则会出错。
2、在用header前不能有任何的输出。
3、header后的PHP代码还会被执行。
相关文章
- eval函数在php中是一个函数并不是系统组件函数,我们在php.ini中的disable_functions是无法禁止它的,因这他不是一个php_function哦。 eval()针对php安全来说具有很...2016-11-25
- 在php中eval是一个函数并且不能直接禁用了,但eval函数又相当的危险了经常会出现一些问题了,今天我们就一起来看看eval函数对数组的操作 例子, <?php $data="array...2016-11-25
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
Python astype(np.float)函数使用方法解析
这篇文章主要介绍了Python astype(np.float)函数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-06-08- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
- 这篇文章主要介绍了Python中的imread()函数用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-16
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
- 下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
- 本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
- CREATE FUNCTION ChangeBigSmall (@ChangeMoney money) RETURNS VarChar(100) AS BEGIN Declare @String1 char(20) Declare @String2 char...2016-11-25
Android开发中findViewById()函数用法与简化
findViewById方法在android开发中是获取页面控件的值了,有没有发现我们一个页面控件多了会反复研究写findViewById呢,下面我们一起来看它的简化方法。 Android中Fin...2016-09-20- 这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
- 这篇文章主要介绍了C++中Sort函数详细解析,sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变...2022-08-18
- strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 false。语法:strstr(string,search)参数string,必需。规定被搜索的字符串。 参数sea...2013-10-04
- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- 这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
PHP函数分享之curl方式取得数据、模拟登陆、POST数据
废话不多说直接上代码复制代码 代码如下:/********************** curl 系列 ***********************///直接通过curl方式取得数据(包含POST、HEADER等)/* * $url: 如果非数组,则为http;如是数组,则为https * $header:...2014-06-07- Foreach 函数(PHP4/PHP5)foreach 语法结构提供了遍历数组的简单方式。foreach 仅能够应用于数组和对象,如果尝试应用于其他数据类型的变量,或者未初始化的变量将发出错误信息。...2013-09-28