好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>CMS系统>Dedecms
<tfoot draggable='sEl'></tfoot>

php今天0点 php 今天0点

很多站长朋友们都不太清楚php今天0点,今天小编就来给大家整理php今天0点,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 PHP如何设置cookie有效期为当天0点到24点? 2、 php设置条形码和文字一样长度不一样 3、 phpssstrong卡死 PHP如何设置cookie有效期为当天0点到24点?

使用PHP的setcookie函数可以设置cookie有效期为当天0点到24点

```

$time = strtotime("tomorrow");

$expireTime = $time - time();

setcookie("name", value, $expireTime);

```

php设置条形码和文字一样长度不一样

解决php字符串长度不等的方法:首先通过“mb_detect_encoding()”函数查看两个字符串的编码方式;然后查看具体字符长度;最后剔除非中文字符即可。

问题:

如图所示 咋眼看去两个一样的中文字符串“后勤保障部”,但一个长度为21 一个为15。

首先直觉可能会认为是编码方式不一样导致的,

通过mb_detect_encoding()函数查看两个字符串的编码方式 代码如下

1

2

3

4

<?phpheader("Content-Type: text/html;charset=utf-8");

 

$data[0]=$str1="后勤保障部";$data[1]=$str2="后勤保障部";

var_dump($data);//查看编码方式$encode1 = mb_detect_encoding($str1,  array("ASCII","UTF-8","GB2312","GBK","BIG5"));$encode2 = mb_detect_encoding($str2,  array("ASCII","UTF-8","GB2312","GBK","BIG5"));echo "str1='".$str1."'"." 编码:".$encode1."</br>";echo "str2='".$str2."'"." 编码:".$encode2."</br>";?>

但输出结果都是UTF-8

那么是什么原因呢 ,我们在输出看下具体字符长度

1

2

3

4

<?phpheader("Content-Type: text/html;charset=utf-8");

 

$data[0]=$str1="后勤保障部";$data[1]=$str2="后勤保障部";

var_dump($data);//查看编码方式$encode1 = mb_detect_encoding($str1,  array("ASCII","UTF-8","GB2312","GBK","BIG5"));$encode2 = mb_detect_encoding($str2,  array("ASCII","UTF-8","GB2312","GBK","BIG5"));//当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符//strlen,得到的是字符串所占的字节数echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>";echo "str2='".$str2."'".": 字符长度:".mb_strlen($str2).": 字节长度:".strlen($str2)." 编码:".$encode2."</br>";?>

输出结果如下:

发现字符串str1有7个中文字符,但实际只显示了5个,也就是“后勤保障部”

通过截取str1最后两个字符查看

1

//截取str1后面两个未显示字符$res=mb_substr($str1, 5,2);echo "最后两字符:".$res."</br>";echo mb_strlen($res);

无法echo显示,但确实占有两个字符

如果实际要求这看上去一样的字符串就相等的话,需要进行处理,处理就是剔除非中文字符:

//剔除str1字串中未显示的字符(非中文字符)preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str1, $matches);$str1 = join('', $matches[0]);

最终代码如下

1

2

3

4

5

6

7

8

9

10

11

12

<?phpheader("Content-Type: text/html;charset=utf-8");

 

$data[0]=$str1="后勤保障部";$data[1]=$str2="后勤保障部";

var_dump($data);//查看编码方式$encode1 = mb_detect_encoding($str1,  array("ASCII","UTF-8","GB2312","GBK","BIG5"));$encode2 = mb_detect_encoding($str2,  array("ASCII","UTF-8","GB2312","GBK","BIG5"));//当mb_strlen的内码选择为UTF-8的时候,则会将中文字符当成一个字符//strlen,得到的是字符串所占的字节数echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>";echo "str2='".$str2."'".": 字符长度:".mb_strlen($str2).": 字节长度:".strlen($str2)." 编码:".$encode2."</br>";//截取str1后面两个未显示字符echo "</br>------------------截取str1后面两个未显示字符---------------------</br>";$res=mb_substr($str1, 5,2);echo "str1最后两字符: ".$res."</br>";echo "str1长度: ".mb_strlen($res)."</br>";//比较echo "</br>--------------------------相等比较----------------------------------</br>";echo "str1 与 str2比较: ";echo strcomp($str1,$str2)."</br>";echo "str2 与 str2比较: ";echo strcomp($str2,$str2)."</br>";//剔除str1字串中非中文preg_match_all('/[\x{4e00}-\x{9fff}]+/u', $str1, $matches);$str1 = join('', $matches[0]);echo "</br>---------------------剔除str1字串中非中文后----------------------</br>";echo "str1='".$str1."'".": 字符长度:".mb_strlen($str1).": 字节长度:".strlen($str1)." 编码:".$encode1."</br>";echo "str1 与 str2比较: ";echo strcomp($str1,$str2)."</br>";function strcomp($str1,$str2){

  if($str1 == $str2){

    return "相等";

  }else{

    return "不等";

  }

}

 

?>

运行结果

注:

将21字节的str1复制到phpmyadmin的sql输入框,显示如下

嗯 就是多的那两个字符

更多相关知识,请访问PHP中文网!

以上就是解决php字符串一样但长度不等的问题的详细内容,更多请关注php中文网其它相关文章!

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

专题推荐:php

上一篇:评价一台计算机的性能主要通过哪几个方面下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

查看更多关于php今天0点 php 今天0点的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did167430
更新时间:2023-03-28   阅读:29次

上一篇: php查找错误 查找phpini

下一篇:验证邮箱函数PHP 验证邮箱的正则表达式php

相关资讯

最新资料更新

  • 1.dede:field name=position去除最后一个大于符号
  • 2.DEDECMS实现在标签中嵌套调用SQL的方法
  • 3.dedecms 5.7 实现点击图片到下一页
  • 4.让dedecms实现shtml包含的实现方法
  • 5.登录织梦后台提示用户名不存在的解决方法介绍
  • 6.dede栏目页面包屑导航最后的分隔符大于号去掉方法
  • 7.dedecms返回列表页功能的标签代码
  • 8.dedecms列表页调用文章正文内容的方法
  • 9.dedecms批量更新静态时提示:没有该栏目数据 可能缓存的解决方法
  • 10.DedeCms调用分类信息到首页并和栏目整齐排序方法
  • 11.DEDECMS网站文章列表页更新点击次数的问题完美解决
  • 12.DedeCms获取当前页面URL地址的实现方法
  • 13.dedecmsV5.7版 tag标签长度的修改方法详解
  • 14.织梦dedecms系统后台安全提示去除方法
  • 15.dede如何按自己写的ID进行排序
  • 16.dedecms实现二级栏目导航的仿制方法
  • 17.织梦DEDECMS文章页调用文章浏览次数优化调用代码
  • 18.dedecms的dedesql.class.php on line 489错误的解决方法
  • 19.dedecms织梦模板点击图片进入下一分页或下篇文章标签
  • 20.如何让dedecms变成全站动态浏览有利于企业站

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]