php base64乱码怎么办

php base64乱码是因为有一些中文字符,用GET形式传过来的时候,“+”号会被替换成空格而导致乱码的,其解决办法就是进行替换再解密即可。

php base64乱码怎么办

PHP base64编码后解码乱码的解决办法

这篇文章主要介绍了PHP base64编码后解码乱码的解决办法,导致乱码的原因就是base64编码后包含一些特殊字符,替换一下就可以了,需要的朋友可以参考下

推荐:《PHP教程》

在用PHP做东西的时候发现了一个问题,可以简单的归结为乱码的问题,但是这个问题不是函数本身造成的。来看看罪魁祸首是谁。

立即学习“PHP免费学习笔记(深入)”;

嫌疑人:base64_encode 和 base64_decode

罪行:我写了一个跳转和提示函数,接收提示信息后跳转到指定的页面,但是跳转提示时汉字乱码。

跳转模版代码如下:

代码如下:

nbsp;html>跳转提示*{ padding: 0; margin: 0; }body{ background: #fff; font-family: '微软雅黑'; color: #333; font-size: 16px;  text-align:center; }.system-message{ width:600px; margin:150px auto 0 auto; background:#f8f8f8; border:1px solid #ccc;-webkit-border-radius: 8px;-moz-border-radius: 8px;border-radius: 8px;-webkit-box-shadow: #666 0px 0px 10px;-moz-box-shadow: #666 0px 0px 10px;box-shadow: #666 0px 0px 10px;}.system-message h1{ font-size:30px; font-weight:normal; height:100px; line-height:100px; color:#c60;}.system-message .jump{ padding: 40px 0;}.system-message .jump a{ color: #333;}.system-message .success,.system-message .error{ height:60px; line-height:70px; font-size: 18px; color:#900;}.system-message .detail{ font-size: 12px; line-height: 20px; margin-top: 12px; display:none}    
                    

:)   恭喜!

            

                    

:(   出错了!

            

                

        

系统将在  后跳转,可直接 ">点此跳转

        
(function(){var wait = document.getElementById('wait'),href = document.getElementById('href').href;var interval = setInterval(function(){ var time = --wait.innerHTML; if(time <= 0) { location.href = href; clearInterval(interval); };}, 1000);})();

登录后复制

PHP redirect函数定义如下:

代码如下:

/* 提醒后跳转 */function _alert( $success=true, $message='success', $time='3', $url='/'){ header('Location:/include/redirect.php?success='.$success.'&message='.base64_encode($message).'&time='.$time.'&url='.base64_encode($url)); exit;}

登录后复制

假如在PHP中这样调用函数的话:

代码如下:

$query = "update content set bid='$clean[bid]',title='$clean[title]',content='$clean[content]',path='$clean[path]' where id=".$clean['id'];if( mysql_query($query) ){ _alert(1,'修改成功',3,'/admin/manage.php');}else{ _alert(false,'修改失败'.mysql_error(),5,'/admin/manage.php');}

登录后复制

你就会看到,“修改成功”或者是“修改失败”这几个汉字乱码了。

为什么?

有时候用base64_encode加密后,以GET的形式传到其他页面,用base64_decode解密的时候,出现乱码。

遇到这个问题的时候,我就纳闷了,为什么有一些能正确解密,但是有一些却出现乱码呢?

后来经过检查,发现有一些中文字符,用GET形式传过来的时候,+号会被替换成空格。

为了防止出现乱码的情况,我做了一步替换,然后再解密,果然,乱码的问题,不复存在了!

现在问题已经很简单了,只要多写一步就好了

代码如下:

$str = base64_decode(str_replace(" ","+",$_GET['str']));

登录后复制

原来,文章一开始定错了嫌疑人了,冤枉了那两个函数了。。。

以上就是php base64乱码怎么办的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2134091.html

(0)
上一篇 2025年2月24日 23:54:36
下一篇 2025年2月24日 23:54:55

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php环境搭建的一键安装包有哪些?

    php环境搭建的一键安装包有:1、XAMPP是一款功能强大的一键安装环境;2、PhpStudy是支持Win10并且对于PHP7的支持也是不错;3、Appserv是一款在Windows下的PHP一键安装环境。 php环境搭建的一键安装包有: …

    2025年2月24日 编程技术
    200
  • php按钮页面跳转页面的实现方法

    php按钮跳转页面的实现方法:首先创建一个代码示例文件;然后输入语句“echo “”;最后在浏览器中执行该文件即可。 页面跳转一般是在静态页面做,php主要做功能开发。 如果真是要用php实现,可以试试下面方法: <?ph…

    2025年2月24日
    200
  • 解决解密PHP加密文件后汉字乱码的方法

    解密PHP加密文件后汉字乱码的解决方法:1、需要再次上传解密后的文件再次解密;2、查看编辑器对中文是否支持,并修改编辑器设置即可解决。 一种情况是部分文件可能加密了两次,解密后仍然为加密状态,您需要再次上传解密后的文件再次解密。 另一种情况…

    2025年2月24日
    200
  • ubuntu php curl安装的步骤方法

    ubuntu php curl安装的方法:首先打开终端窗口;然后输入命令“# sudo apt-get install curl libcurl3 libcurl3-dev php7.0-curl”并执行即可安装完成。 ubuntu 16.…

    2025年2月24日
    200
  • php怎么修改ini文件

    php修改ini文件的方法:首先在PHP目录文件下找到并打开“php.ini”文件;然后按住“ctrl+F”快捷键找到需要修改的配置项;接着去掉配置项前面的注释;最后修改需要的数值并保存即可。 php修改ini文件 找到php.ini文件,…

    2025年2月24日
    200
  • php不显示html怎么办

    php不显示html是因为没有关闭标签导致的,其解决办法就是重新写入完整的html代码为“ .class{backgroundcolor:red;}”即可。 php中的html代码无法显示 问题代码如下: .class{background…

    2025年2月24日
    200
  • 解决 IIS php无法找到该页的问题

    php无法找到该页的解决办法:首先找到并打开“Internet服务管理器”项;然后在其左边的“WEB服务扩展”中设置ISAPI扩展允许,以及Active Server Pages允许;最后保存设置即可。 解决 IIS php无法找到该页的问…

    2025年2月24日
    200
  • php怎么替换imgsrc地址参数

    php替换imgsrc的方法:首先定义一个“get_img_thumb_url”方法;然后通过正则替换Img中src地址参数;最后将图片地址替换成压缩URL即可。 PHP实现用正则替换Img中src地址参数 在实际开发过程,我们往往需要PH…

    2025年2月24日
    200
  • php如何设置关闭页面刷新?

    php设置关闭页面刷新的方法:首先使用【location.reload()】函数;然后输入html代码【JS代码:】 php设置关闭页面刷新的方法: 1、在实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload(…

    2025年2月24日 编程技术
    200
  • php数组如何转换为对象

    php数组转换为对象的方法就是直接通过新建匿名类进行转换即可,具体语句为“ protected function arrayTransitionObject(Array $array) {if (is_array($array)) }”。 …

    2025年2月24日
    200

发表回复

登录后才能评论