php mb_substr实现中文字符串截取无乱码的方法
注意:在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到
;extension=php_mbstring.dll把前面的;号去掉,这样mb_substr函数就可以生效了
例子
代码如下 | 复制代码 |
<?php echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); echo "mb_strcut:" . mb_strcut($str, 0, 6, 'utf-8'); |
从上面的例子可以看出,mb_substr是按字来切分字符,而mb_strcut是按字节来切分字符,但是都不会产生半个字符的现象。
代码如下 | 复制代码 |
|
获取301状态肯定没问题。
代码如下 | 复制代码 |
function getrealurl($url){ ['Location'])-1]; |
补充:get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头
代码如下 | 复制代码 |
$url = 'http://111cn.net'; print_r(get_headers($url)); |
结果
代码如下 | 复制代码 |
Array |
PHP星期几获取代码:
代码如下 | 复制代码 |
date(“l”); //data就可以获取英文的星期比如Sunday |
获取中文星期几:
代码如下 | 复制代码 |
$weekarray=array(“日”,”一”,”二”,”三”,”四”,”五”,”六”); //先定义一个数组 echo “星期”.$weekarray[date("w")]; |
获取指定日期是:
代码如下 | 复制代码 |
$weekarray=array(“日”,”一”,”二”,”三”,”四”,”五”,”六”); |
PHP函数Date()获取当前时间
代码如下 | 复制代码 |
<?php echo $showtime=date("Y-m-d H:i:s");?> |
输出当前时间:2008-10-12 02:32:17
怪了,实际时间是:2008-10-12 10:32:17
看看PHP手册的“例子 1. date() 例子”第一行多了一个 时区设置
// 设定要用的默认时区。自 PHP 5.1 可用
代码如下 | 复制代码 |
date_default_timezone_set(UTC); |
原来php5.1.开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和北京时间正好差8个小时。
如何设置可以得到正确的PHP时间?
1、修改php.ini。打开php.ini查找date.timezone 去掉前面的分号= 后面加Asia/Shanghai,重启apache服务器即可--缺点就是如果程序
放到别人的服务器上,不能修改php.ini,那就奈何不得了。
2、在程序中添加时间的初始化的语句的 即:“date_default_timezone_set("Asia/Shanghai"); ”这个可以由程序员任意设置,我的推荐。
时区标识符,大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)还有新加坡:Asia/Singapore
这样就可以实现输出的是北京时间了。
例如:php.ini文件中包含了以下的设置:
代码如下 | 复制代码 |
register_globals = Off post_max_size = 8M |
PHP部分我们可以这样获取:
代码如下 | 复制代码 |
<?php echo 'display_errors = ' . ini_get('display_errors') . "\n"; echo 'register_globals = ' . ini_get('register_globals') . "\n"; echo 'post_max_size = ' . ini_get('post_max_size') . "\n"; echo 'post_max_size+1 = ' . (ini_get('post_max_size')+1) . "\n"; echo 'post_max_size in bytes = ' . return_bytes(ini_get('post_max_size')); ?> |
如果想获取整个php.ini里的变量值,我们可以用ini_get的加强函数 ini_get_all()
ini_get_all()函数以数组的形式返回整个php的环境变量
当然如果你只是想了解下php的配置信息用
<?php
phpinfo();
?>
接着向下看
php手册中有一个例子
代码如下 | 复制代码 |
<?php /* Our php.ini contains the following settings: display_errors = On register_globals = Off post_max_size = 8M */ echo ‘display_errors = ‘ . ini_get(’display_errors’) . “\n”; //显示错误是否打开 echo ‘register_globals = ‘ . ini_get(’register_globals’) . “\n”; //全局变量是否打开 echo ‘post_max_size = ‘ . ini_get(’ post_max_size’) . “\n”; //最多能提交的文件大小 echo ‘post_max_size+1 = ‘ . (ini_get(’post_max_size’)+1) . “\n”; ?> |
输出:
display_errors = 1
register_globals = 0
post_max_size = 8M
post_max_size+1 = 9
PHP配置函数ini_get()主要是为了获取配置文件,可以方便你很多操作。比如你想操作字符串过滤,但是又不清楚magic_quotes_gpc有没有打开,所以你就可以这样写一个函数:
代码如下 | 复制代码 |
/* 字符串过滤函数 */ function stringFilter($str) |
当然,如果你无法知道你的全局变量是否打开,也可以定制这样的函数:
/* 变量检测函数 */
代码如下 | 复制代码 |
function getGetVar($var) { if (ini_set(’register_gobals’)) { return $var; } else { return $_GET['var']; } } |
当然,你可以用PHP配置函数ini_get()做很多用途,自己慢慢体会。
补充
1.ini_get()获取配置参数,ini_set()设置配置参数
代码如下 | 复制代码 |
|
2.ini_get_all()获取所有配置信息
代码如下 | 复制代码 |
|
3.ini_restore()恢复配置信息到原始值
代码如下 | 复制代码 |
<?php echo ini_get('display_errors'); //1 |
偶然做文件移动的时候总结的一个知识点:刚开始的时候,以为跟上传文件一样可以用move_uploaded_file这个函数去移动一个文件,试了之后发现不行,网上搜了一把,发现可以用rename这个函数来实现文件或文件夹的移动,很奇怪,手册上写的是重名文件或文件夹的,没想到可以用来移动文件
关于函数返回值:
bool rename ( string $oldname , string $newname [, resource $context ] )
尝试把 oldname 重命名为 newname,若操作成功则返回True,失败返回False。
1. 对于文件,rename可以在不同盘符之间移动。
2. 对于空文件夹,rename也可以在不同盘符之间移动。但是目标文件夹的父目录必须存在。
3. 对于非空文件夹,只能在同一盘符下移动。
用法如下:
rename("/tmp/www.txt", "/home/my_file.txt");
第一个参数放原地址,第二个参数放目标地址;
网上还有一种方法是用copy+unlink,不过听说移动的速度不怎样,所以也就不说了,用rename就行,简单、方便、快捷
可能习惯用copy,unlink来实现文件的移动,对于大文件,可能会消耗很长时间,但是经测试发现性能不行。
补充:中文文件及文件夹的问题
相关文章
js URLdecode()与urlencode方法支持中文解码
下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。 代码如下 复制代码 ...2016-09-20- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
关于Mysql中文乱码问题该如何解决(乱码问题完美解决方案)
最近两天做项目总是被乱码问题困扰着,这不刚把mysql中文乱码问题解决了,下面小编把我的解决方案分享给大家,供大家参考,也方便以后自己查阅。首先:用show variables like “%colla%”;show varables like “%char%”;这两条...2015-11-24- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
- 这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
- 这篇文章主要介绍了C#读取中文文件出现乱码的解决方法,涉及C#中文编码的操作技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
- 这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 我们自己鼓捣mysql时,总免不了会遇到这个问题:插入中文字符出现乱码,虽然这是运维先给配好的环境,但是在自己机子上玩的时候咧,总得知道个一二吧,不然以后如何优雅的吹牛B。...2015-03-15
- 在debian环境下,彻底解决mysql无法插入和显示中文的问题Linux下Mysql插入中文显示乱码解决方案mysql -uroot -p 回车输入密码进入mysql查看状态如下:默认的是客户端和服务器都用了latin1,所以会乱码。解决方案:mysql>use...2013-10-04
- 文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
- 一.mysql默认不支持中文,它的server和db默认是latin1编码.所以我们要将其改变为utf-8编码,因为utf-8包含了地球上大部分语言的二进制编码 1.关闭mysql服务 sudo /etc/init.d/mysql stop 2.修改mysql配置文件 mysql配...2015-10-21
- 这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25