最近闲着没事做,玩了下php,没想到php的字符串截取这么麻烦…… //可以使用正则的字符串替换 public function replaceText($val,$reg,$newstring){ return preg_replace($reg, $newstring, $val); }//补充一函数,其实就是本人不习惯preg_replace的参数序列,所以改了下这个函数 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 晕,原来php版的人气还不如asp版啊…… en?PHP不是有字符串截取函数吗,strcut,mb_strcut.两个足够了啊。呵呵。 据说,这两个函数都有点问题啊不过你说的应该是substr、mb_strcut? asp的管你什么编码,一个mid一个left一个right函数就可以搞定 字符串处理函数在PHP里,有两套以字符串截取为例:substr mb_substr后者处理多字节字符串.至于你提到的函数有点问题,不是函数本身有问题,是你不会用而矣. string mb_substr ( string $str, int $start [, int $length [, string $encoding]] )mb系列函数,一般都需要指定字符串的编码方式.比如gbk, utf-8等等.所以一般如果不指定,会出现错误. 配置文件没配置好mb_substr一用就报错不过……如果用mb_substr只是需要指定下编码的话,倒是可以把我那一长串代码精简掉很多 asp的确 简单 php复杂啊记得第一次看到php的时候我都感觉是乱码! asp正是因为简单,所以可操作性不强.这是不争的事实,呵呵. 下一本php manual,然后找到里面的字符串处理函数,一看都什么都明了其实大部分这上面的问题都可以通过手册来解决的 还有一个问题让我有点郁闷,在big5编码下,正则式的.匹配字符,如果是中文的话只匹配出第一个字节,这样就出乱码了不知道怎么设置才能匹配整个中文字符……迷糊中如果是utf-8的话,可以设定正则模式/./imsu匹配,但是big5就没这作用了,哎 php中使用正则,我写asp.net、asp、jsp、js用的正则好多都不适用了,郁闷中…… /[\x7f-\xff]+/i//不区分编码,用来匹配中文,仅供参考! 自己没把编码给处理好,还说是php的毛病,要知道php是可以在双系统上运行的!正则写标准点,都适用的,你说的那几个我也都用过,大多可以用吧!只是.net里面不同的多一点! 自己没把编码给处理好,还说是php的毛病,要知道php是可以在双系统上运行的!正则写标准点,都适用的,你说的那几个我也都用过,大多可以用吧!只是.net里面不同的多一点! CSDN的人越来越水了,经常发贴发两次! 呵呵,我现在只是测试php的一些函数,没说php有啥毛病如果我都把编码设置好了,也不用测试了另外:似乎有些人认为我是来踢场的啊!在此声明下本人的立场:本人不认为哪种语言比哪种语言更好,存在即合理。/[^\x{00}-\x{ff}]/imsu我用的是这个(其实我是想匹配任意一个宽字节字符),utf-8下可以匹配,然后尝试换了big5编码,这个正则就傻了,你的正则看起来是一样的,都是用的字符集的编码范围,估计也没用,呵呵 PHP己经给定的函数了,就不用自己傻傻的再写一大串没效率的东西 试了就是一样的效果啊,要么就是我的配置问题,或者用preg_replace没法解决这个问题,或者……是我本身的代码问题另外,php+mssql好像比php + mysql的组合差的很远啊现在我还没找到完美解决页面用utf-8而mssql用gb2312编码的组合问题输出的时候用iconv强制转换编码可以正常显示,但是这种解决方式并不是很理想,因为插入数据的时候,还需要用iconv逆转,否则这些数据到mssql数据库中之后,那就是乱码,其它应用程序调用的时候会比较麻烦。至于mysql,解决方法比用mssql的解决方法简单多了……或者还有别的解决方法?而try{}catch(){}语句块还不知道怎么用,反正用的时候就是没法处理好异常,或者是因为我使用的环境的问题,或许是我不知道怎么去使用它,手册上的说明比较简短,看不大明白恩,我用的是IIS 6.0跑的php,操作系统为win 2003 另外,php+mssql好像比php + mysql的组合差的很远啊现在我还没找到完美解决页面用utf-8而mssql用gb2312编码的组合问题输出的时候用iconv强制转换编码可以正常显示,但是这种解决方式并不是很理想,因为插入数据的时候,还需要用iconv逆转,否则这些数据到mssql数据库中之后,那就是乱码,其它应用程序调用的时候会比较麻烦。至于mysql,解决方法比用mssql的解决方法简单多了……或者还有别的解决方法? ------------------------------------编码统一的解决方案除外 两种方式一种用mb_string库一种在数据库端函数 求助大家 季度差 怎么计算 php生成PDF 序列化后的字段如何进行搜索 高难度的多选框问题`````高手请进 ????? 求个X的算法 求一删除技巧,大家都是怎么做的啊?急急 关于服务器环境问题.net与php 显示图片一定要GD库支持吗? 用PHP发邮件的问题,求您帮帮忙? 为什么判断错误?! 不用链接的方式 如何能让一串图片二进制数据在WAP上显示?? php把下面的数组值去出来,请看数组!在线等候……
不过你说的应该是substr、mb_strcut?
以字符串截取为例:
substr mb_substr
后者处理多字节字符串.至于你提到的函数有点问题,不是函数本身有问题,是你不会用而矣.
mb系列函数,一般都需要指定字符串的编码方式.比如gbk, utf-8等等.
所以一般如果不指定,会出现错误.
不过……如果用mb_substr只是需要指定下编码的话,倒是可以把我那一长串代码精简掉很多
的确 简单 php复杂啊记得第一次看到php的时候我都感觉是乱码!
这是不争的事实,呵呵.
不知道怎么设置才能匹配整个中文字符……迷糊中如果是utf-8的话,可以设定正则模式/./imsu匹配,但是big5就没这作用了,哎
//不区分编码,用来匹配中文,仅供参考!
正则写标准点,都适用的,你说的那几个我也都用过,大多可以用吧!只是.net里面不同的多一点!
正则写标准点,都适用的,你说的那几个我也都用过,大多可以用吧!只是.net里面不同的多一点!
呵呵,我现在只是测试php的一些函数,没说php有啥毛病如果我都把编码设置好了,也不用测试了另外:似乎有些人认为我是来踢场的啊!
在此声明下本人的立场:
本人不认为哪种语言比哪种语言更好,存在即合理。/[^\x{00}-\x{ff}]/imsu我用的是这个(其实我是想匹配任意一个宽字节字符),utf-8下可以匹配,
然后尝试换了big5编码,这个正则就傻了,
你的正则看起来是一样的,都是用的字符集的编码范围,估计也没用,呵呵
要么就是我的配置问题,或者用preg_replace没法解决这个问题,或者……是我本身的代码问题另外,php+mssql好像比php + mysql的组合差的很远啊
现在我还没找到完美解决页面用utf-8而mssql用gb2312编码的组合问题
输出的时候用iconv强制转换编码可以正常显示,但是这种解决方式并不是很理想,
因为插入数据的时候,还需要用iconv逆转,否则这些数据到mssql数据库中之后,那就是乱码,
其它应用程序调用的时候会比较麻烦。至于mysql,解决方法比用mssql的解决方法简单多了……
或者还有别的解决方法?而try{}catch(){}语句块还不知道怎么用,反正用的时候就是没法处理好异常,
或者是因为我使用的环境的问题,或许是我不知道怎么去使用它,手册上的说明比较简短,看不大明白恩,我用的是IIS 6.0跑的php,操作系统为win 2003
现在我还没找到完美解决页面用utf-8而mssql用gb2312编码的组合问题
输出的时候用iconv强制转换编码可以正常显示,但是这种解决方式并不是很理想,
因为插入数据的时候,还需要用iconv逆转,否则这些数据到mssql数据库中之后,那就是乱码,
其它应用程序调用的时候会比较麻烦。至于mysql,解决方法比用mssql的解决方法简单多了……
或者还有别的解决方法?
------------------------------------
编码统一的解决方案除外
一种用mb_string库
一种在数据库端函数