-
php程序中不能使用mb_开头的函数解决办法
2011-12-16 09:58:331 确认d:/php/ext/php_mbstring.dlls模块是否存在 如果没有找个安装程序把php_mbstring.dlls复制到 ... 2 更改php的配置文件php.ini 增加 extension_dir=d:/php/ext extension=php_mbstring.dll1 确认d:/php/ext/php_mbstring.dlls模块是否存在 如果没有找个安装程序把php_mbstring.dlls复制到d:/php/ext下(假设php安装在d:/php目录下)
2 更改php的配置文件php.ini 增加
extension_dir=d:/php/ext
extension=php_mbstring.dll
3 重新启动apache
4 ok
-
整理了一点php mb开头的方法与非mb开头方法的区别
2017-06-08 11:26:48也就是说,以mb开头的字符串函数,处理的字符串可以是多字节的。 即处理汉字的时候用这些就可以了。 1,substr,mb_substr以及mb_strcut的区别和用法 这个很多地方都有解释,我就简单说两句。不带substr处理...名词解释
mb,Multibyte的缩写, Multibyte String Functions就是这一类函数的翻译。度娘翻译是“多字节字符串函数”。也就是说,以mb开头的字符串函数,处理的字符串可以是多字节的。
即处理汉字的时候用这些就可以了。
1,substr,mb_substr以及mb_strcut的区别和用法
这个很多地方都有解释,我就简单说两句。不带substr处理汉字是会出问题的。
substr(string,start,length) 这是它的参数string-需要处理的字符串;start-起始下标,从0开始;length-截取的长度。
全部翻译就是,我要把string从它的start位置开始截取length这么长但是我截取不了中文谢谢。
mb_substr( $str, $start, $length, $encoding )
$str,需要截断的字符串
$start,截断开始处,起始处为0
$length,要截取的字数
$encoding,网页编码,如utf-8,GB2312,GBK也用一句话翻译,我要把$str从$start开始截取$length辣么长当然你要是觉得哪里不对可以试试设置一下$encodeing改变编码格式
当然我截取中文是按照字符也就是一个汉字看做一个下标来截取的 什么不明白,那么举个栗子
<?php echo mb_substr('这是一个长长的字符串来截我吧。',0,6,'utf-8'); ?> 结果是:这是一个长长
mb_strcut跟mb_substr参数完全一样,但是它截取的时候是按照字节去搞的 栗子在下面
<?php echo mb_strcut('这是一个长长的字符串来截我吧。',0,6,'utf-8'); ?> 结果是:这是一
暂时就这些,随时补充...
-
PHP中的字符串处理 - str函数与mb函数
2020-04-26 12:54:532、mb开头的函数 但是我们最先接触的是str函数,所以不可避免在工作中会优先使用str函数,但是仔细研究就会发现大部分str函数操作的是字节数组,虽然字符串也是由多个字节组成的字节数组,但是对于多个字节的字符,...我们知道在PHP中有两大类函数用来处理字符串的
1、str开头的
2、mb开头的函数我们最先接触的是str函数,所以不可避免在工作中会优先使用str函数,但是仔细研究就会发现大部分str函数操作的是字节数组,虽然字符串也是由多个字节组成的字节数组,但是对于多字节的字符,在处理上却不是很好。
// utf-8编码 $string = 'rxy中国';
1、strlen — 获取字符串长度
实际上这个描述是错的,因为官方有一个提示Note: strlen() returns the number of bytes rather than the number of characters in a string.
所以strlen的真正描述是:获取字符串的字节长度。
echo strlen($string); // 9
在unicode字符集中utf-8编码规则下,一个中文占三个字节。
2、substr — 返回字符串的子串
它的真实含义是截取字符串对应的字节数组。echo substr($string, 0, 4); // rxy�
因为在unicode字符集中找不到对应的字符,所以操作系统也就无法正常显示。
3、访问指定位上的字符
既然字符串是一个字节数组,那么也就可以以数组的方式访问某个字节元素了。echo $string[0]; // r echo $string[3]; // � echo $string[4]; // � echo $string[5]; // � echo $string[3] . $string[4] . $string[5]; // 中
由以上三个例子可以看出,str系列函数是偏向于字节数组的操作,而不适合我们常用的场景,当然str还有一些函数就不存在这样的情况,比如
str_replace — 子字符串替换 单纯的匹配和替换,不用关心某个字符是不是多字节字符,因此不受影响。
以上列出的只是小部分函数,其他的str函数,根据其定义就可以判断出是否适合使用。
相比之下mb函数则更适合用作字符串处理。它使用unicode字符集为基准,以utf-8编码作为规则来处理字符串。
针对上面的问题,采用mb函数来处理:
//获取字符串长度 echo mb_strlen($string); // 5 //截取字符串 echo mb_substr($string, 0, 4); // rxy中 //获取指定位置上的字符 echo mb_substr($string, 0, 1) // r echo mb_substr($string, 3, 1) // 中
-
找不到php_mbstring.dll或php_exif.dll的解决方法与mb_系列函数的用法 libmcrypt.dll时出错的处理
2013-05-17 13:57:39PHPWarning: PHPStartup:Unabletoloaddynamic library 'e:/AppServ\php5\ext\php_exif.dll' - 找不到指定的模块。 ... in Unknown on line 0 ...mb_开头的函数是为了解决像utf-8这样多字节字符的截PHPWarning: PHPStartup:Unabletoloaddynamic library 'e:/AppServ\php5\ext\php_exif.dll' - 找不到指定的模块。
in Unknown on line 0
或提示找不到php_mbstring.dll,都可以用下面的方法解决.
mb_开头的函数是为了解决像utf-8这样多字节字符的截取与长度等操作的,如果直接用substr则常出现最后一个字符的乱码(即截取了半个汉字)
首先安装php_mbstring.dll,它是放在php目录的 ext文件夹下的,确保在php.ini文件中加载extension=php_exif.dll前先加载extension=php_mbstring.dll,即:
extension=php_mbstring.dll 在前
extension=php_exif.dll 在后.
否则在命令行启动时总会提示:“找不到php_mbstring.dll”.
下面是使用的一个例子(感觉非常的爽,以前要写很20行解决的文件,现在一个函数就解决了)
<?
header("Content-Type: text/html; charset=utf-8");
$str = '这样一来我的字符串就不会有乱码^_^';
echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8');
echo "<br>";
echo "mb_strcut:" . mb_strcut($str, 0, 7, 'utf-8');
echo "<br>";
echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8');
/*
输出如下反正不会出现乱码:
mb_substr:这样一来我的字
mb_strcut:这样 (按字节截取,如果不足一个中文的字节,则把这字舍去)
mb_strcut:这样
*/
?>
windows php安装libmcrypt.dll时出错的处理,在apache的logs/error.log里可以看到如下提示:
PHP Warning: PHP Startup: Unable to load dynamic library 'D:/AppServ/php5/ext\\libmcrypt.dll' - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0处理办法:
1.在php手册里可以查到libmcrypt.dll是要依赖libmcrypt.dll的,所以在php的目录下找到libmcrypt.dll 把 libmcrypt.dll 放在 system32 文件夹中.
2.在php.ini中把此行去掉注释.extension=php_mcrypt.dll.
3.重起apache.再试一下.Warning: fsockopen() [function.fsockopen]:unable to connectto ssl://open.t.qq.com:443 (Unable to find the socket transport "ssl" - did you forgetto enable it when you configuredPHP?) in D:\test\txPHP-SDK\opent.php on line 216
打开ssl中的: extension=php_openssl.dll
WEB开发类:
50个最受网友欢迎的HTML5资源下载列表
http://bbs.51cto.com/thread-933835-1.html
17、2012 PHP热门资料64个+经典源码50个——下载目录
http://bbs.51cto.com/thread-933810-1.html
18、ASP开发入门+实战电子书共50本
http://bbs.51cto.com/thread-935556-1.html
19、45个CSS热门资料源码打包下载
http://bbs.51cto.com/thread-936565-1.html
20、62个ASP免豆资料汇总,欢迎下载~
http://bbs.51cto.com/thread-939214-1.html
21 、【PHP资料免豆下载】汇总大量教程+工具+源码下载地址
http://bbs.51cto.com/thread-939548-1.html
22、60个JSP免豆资料(教程+源码)下载地址汇总
http://bbs.51cto.com/thread-939980-1.html
23、【资料目录收藏】.NET开发必看资料53个+经典源码77个
http://bbs.51cto.com/thread-933829-1.html
24、39个jQvery免豆资料地址汇总
http://bbs.51cto.com/thread-941006-1.html
25、82个Javascript免豆资料下载地址汇总
http://bbs.51cto.com/thread-941008-1.html -
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2021-01-02 12:19:11本文实例讲述了php常用字符串长度函数strlen()与mb_strlen()用法。分享给大家供大家参考,具体如下: int strlen ( string $string ) int strlen ( string $string ) 获取给定字符串的[字节]长度 成功则返回字符串... -
php中常用的字符串长度函数strlen()与mb_strlen()实例解释
2017-10-02 22:12:44int strlen ( string $string )int strlen ( string $string ) 获取给定字符串的[字节]长度 成功则返回字符串$string的长度,如果$string为空,则返回 0。... //输出7,注意,开头、结尾、中间的空格... -
php中求字符串的长度,php中常用的字符串长度函数strlen()与mb_strlen()实例解释
2021-04-08 10:57:57int strlen ( string $string ) int strlen ( string $string ) 获取给定字符串的[字节]长度 成功则返回字符串$string的长度,...//输出7,注意,开头、结尾、中间的空格$str3 = "中国你好";//输出12,但会变化,与... -
在php中使用非拉丁文字函数的配置
2019-07-25 22:23:37在php中有很多内置函数,但是大部分都是基于拉丁文字的函数,当使用非拉丁文字进行这些函数的输入,会出现一些数据的变化,所以php有专门的非拉丁文字函数,通常以mb_开头,但是当使用后会报错,提示没有创建这个... -
使用正则实现php的trim函数,支持全角空格
2015-11-06 19:56:00之前使用trim来移除一段文字开头的空格,移除不掉,发现是全角空格的锅。...然后在网上找到了一些移除空格的正则表达式,封装成mb_trim函数,来替代php自带trim 函数。 多字节版 trim 函数,支持移除首尾空... -
Php反转字符串函数
2010-09-03 12:42:00charset=utf-8");...* 反转utf8的字符串,使用mb开头的函数 * @param string $str * @return string */ function mb_strrev($str) { $len = mb_strlen($str, 'UTF-8'); $string = ''; for ($i = $len - -
Zend Server CE: undefined function mb_eregi_replace()
2012-04-17 13:41:57如果你用的是Zend Server CE...mb_开头的函数都包含在php_mbstring.dll的php扩展中,你首先要确保php.ini中extension=php_mbstring.dll这一行前面是没有分号的。然后需要检查PHP版本,按理PHP5以上都是支持这个函数的 -
Tp5模板中条件判断中函数的使用
2018-12-06 15:24:45直接上实例: ...1.使用if判断:condition中正常使用php函数 {if condition="mb_substr(strip_tags($note),0,4) eq 'http'"} 1 <p>{$note|strip_tags=###|mb_substr=###,0,4... -
php utf8 或gbk 截取字符串乱码解决
2013-06-06 16:54:00<?php header("content-type:text/...charset=utf-8"); mb_internal_encoding('utf-8');//设置所有mb开头的函数内部编码 $a = '2013年06月06日'; $a = mb_substr($a,0,mb_strlen($a)-1); echo $a ; ... -
找不到php_mbstring.dll
2012-03-16 07:43:00PHP Warning: PHP Startup: Unable to load dynamic library 'e:/AppServ\php5\ext\php_exif.dll' - 找不到指定的模块。in Unknown on line 0 ...mb_开头的函数是为了解决像utf-8这样多字节字符的截取与长度等操作的... -
PHP中用正则表达式实现类似trim的功能(包括去除全角空格)(转)
2014-10-09 16:07:00trim()函数去除单字节的字符效果很好,但是无法有效去除UTF-8编码中的全角空格(可能去不掉,或引起乱码)。 要去掉UTF-8编码字符串开头和结尾的空格(全角、半角)、制表符、换行符等,可以如下实现: $s = mb_... -
PHP中用正则表达式实现类似trim的功能(包括去除全角空格)
2011-10-09 16:34:56trim()函数去除单字节的字符效果很好,但是无法有效去除UTF-8编码中的全角空格(可能去不掉,或引起乱码)。 要去掉UTF-8编码字符串开头和结尾的空格(全角、半角)、制表符、换行符等,可以如下实现: $s = mb_ereg... -
处理中文字符
2016-07-08 21:09:49有一些字符串函数不适用于中文,对此php提供了专门的函数来解决这些问题。所有处理中文字符串的函数都是以mb开头的。 例如一些函数: mb_strlen(),mb_strpos(),mb_substr()......... -
PHP截取中文乱码问题(0xa0)
2012-06-24 22:16:00最近在做提取文章开头的一部分时,遇到了汉字截取出现乱码的情况,在网上搜了一通,看了...php/***———————————-*首先定义自己的函数:*———————————-*/function mysubstr($string, $start, $... -
PHP中用正则表达式去空格(包括去除全角空格) .
2012-05-05 16:35:22trim()函数去除单字节的字符效果很好,但是无法有效去除UTF-8编码中的全角空格(可能去不掉,或引起乱码)。 要去掉UTF-8编码字符串开头和结尾的空格(全角、半角)、制表符、换行符等,可以如下实现: $s = mb_... -
Qt Creator 的安装和hello world 程序+其他程序的编写--不是一般的好
2011-01-28 17:02:08句,这里我们将其放到private 里,因为一般的函数都放在public 里,而变量 都放在private 里。 #ifndef WIDGET_H #define WIDGET_H #include #include "mydlg.h" //包含头文件 namespace Ui { class Widget; } ... -
grub4dos-V0.4.6a-2017-02-04更新
2017-03-05 21:51:191.skip_to()函数修改,对于引号里面的”\”使用以前的方法处理,保持兼容性。(chenall) 2.add variable @boot,add debug info。(chenall) 3.two variables boot_drive and install_partition can be preset to a ... -
字库文件可大可小,提供迷你版字库大小仅120KB,方便存储空间紧张的硬件,完整版字库25MB。 可选谷歌内核的输入法引擎,字库文件1MB,不依赖数据库,资源占用低效率极高。支持模糊拼音,比如nh=你好。 可选windows...