0

0

PHP也能干大事之PHP中的编码解码详解

php中文网

php中文网

发布时间:2016-06-06 20:05:05

|

1575人浏览过

|

来源于php中文网

原创

这篇文章主要介绍了PHP也能干大事之PHP中的编码解码详解,本文讲解了ASCII编解码、URL编解码、Base64编解码、HTML实体编解码、二进制、八进制、十进制、十六进制

写在前面

PHP也能干大事是我总结的PHP语法特性及相关函数类库的经典用法,并不一定是真正能实现四两拨千斤的功效,但是掌握这些方法,可以在你的工作和学习上有一些帮助,希望大家能集思广益,将《PHP也能干大事》丰富得更精彩!转载请注明出处(jb51.net)

二、前言

PHP是常见的脚本语言,主要是因为其简单易学,上手快,几乎50%以上的Web程序都有PHP的身影(不完全统计)。PHP为开发这提供了丰富的函数和API接口,这使得我们能够非常方便地使用其强大的内置函数及扩展,本文是《PHP也能干大事》系列的第一篇,主要总结PHP在编解码、进制转换方面的知识。

PHP也能干大事之PHP中的编码解码详解

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

三、PHP编解码

1、ASCII编解码

ASCII(发音:英语发音:/ˈæski/ ASS-kee,American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本EASCII则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。由于万维网使得ASCII广为通用,直到2007年12月,逐渐被Unicode取代。 https://zh.wikipedia.org/zh/ASCII

PHP也能干大事之PHP中的编码解码详解

PHP基本函数内置了ASCII的编解码函数,这使得我们能轻松进行ASCII编解码。

int ord ( string $string ) //返回字符串 string 第一个字符的 ASCII 码值。
string chr ( int $ascii  ) //返回相对应于 ascii 所指定的单个字符。

复制代码 代码如下:


php
$str = 'Welcome to China';
function getNum($string){
    $needle = 0;
    $num = '';
    while (isset($string[$needle])) {
        $num .= $num==0?'':' ';
        $num .= ord($string[$needle]);
        $needle++;
    }
    return $num;
}
function getChar($num){
    $num_arr = explode(' ', $num);
    $string = '';
    foreach ($num_arr as $value) {
        $string .= chr($value);
    }
    return $string;
}
echo "字符转ASCII码\n";
echo getNum($str);
echo "\n";
echo "ASCII码字符\n";
echo getChar(getNum($str));
/* @OUTPUT
字符转ASCII码
87 101 108 99 111 109 101 32 116 111 32 67 104 105 110 97
ASCII码字符
Welcome to China
*/
 
?>

2、URL编解码

php商城系统
php商城系统

PHP商城系统是国内功能优秀的网上商城系统,同时也是一个商业的PHP开发框架,有多套免费模版,强大的后台管理功能,专业的网上商城系统解决方案,快速建设网上购物商城、数码商城、手机商城、办公用品商城等网站。 php商城系统v3.0 rc6升级 1、主要修复用户使用中出现的js未加载完报错问题,后台整改、以及后台栏目的全新部署、更利于用户体验。 2、扩展出,更多系统内部的功能,以便用户能够迅速找到需

下载

URL编码是一种浏览器用来打包表单输入的格式。浏览器从表单中获取所有的name和其中的值,将它们以name/value参数编码作为URL的一部分或者分离地发给服务器。比如我们在访问网页中,会出现很多带有%的字符串,这就是URL编码。

URL编码一般采用UTF-8编码格式,所以建议采用UTF-8格式传递数据。正常意义的URL编码可以理解为ASCII码的16进制前加上%,无大小写区分。

复制代码 代码如下:


string urlencode(string $str)  //此函数便于将字符串编码并将其用于URL的请求部分,同时它还便于将变量传递给下一页。空格编码成 + 。
string urldecode(string $str)  //解码给出的已编码字符串中的任何 %XX,加号('+')被解码成一个空格字符。
string rawurlencode (string $str)   //根据 RFC 3986 编码指定的字符,空格转换成%20。
string rawurldecode (string $str)   //返回字符串,此字符串中百分号(%)后跟两位十六进制数的序列都将被替换成原义字符。 + 不被转换成空格。

两组函数用法一样,除了对于+和空格的转换处理上:rawurlencode将空格转为%20,不将+转为空格;urlencode则不一样。

复制代码 代码如下:


$str_arr = array(
    'www.jb51.net',
    'http://www.jb51.net/',
    'PHP也能干大事',
   
    );
foreach ($str_arr as $key => $value) {
    echo $value,"\t->\t",urlencode($value),"\n";
}
/* @OUTPUT
  ->   
  ->    http%3A%2F%2F%2F
PHP也能干大事  ->    PHP%E4%B9%9F%E8%83%BD%E5%B9%B2%E5%A4%A7%E4%BA%8B
?      ->    %21%40%23%24%25%5E%26%2A%28%29_%2B%3D-%7E%60[]%7B%7D%7C%5C%3B%3A%27%22%3C%3E%2C.%2F%3F
*/
?>

3、Base64编解码

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于2的6次方等于64,所以每6个位元为一个单元,对应某个可打印字符。三个字节有24个位元,,对应于4个Base64单元,即3个字节需要用4个可打印字符来表示。它可用来作为电子邮件的传输编码。使用的字符包括大小写字母各26个,加上10个数字,和加号「+」,斜杠「/」,一共64个字符,等号「=」用来作为后缀用途。完整的base64定义可见RFC 1421和RFC 2045。编码后的数据比原始数据略长,为原来的4/3。在电子邮件中,根据RFC 822规定,每76个字符,还需要加上一个回车换行。可以估算编码后数据长度大约为原长的135.1%。 https://zh.wikipedia.org/zh/Base64

string base64_encode(string $data)  //使用 base64 对 data 进行编码。
string base64_decode (string $data [, bool $strict = false ])  //对 base64 编码的 data 进行解码。

案例:HTML页面中img标签可以在src属性中采用base64编码方式,来输出图片,这样可以减少HTTP请求次数。

复制代码 代码如下:

相关标签:

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

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

97

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

51

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

139

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

12

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

19

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

83

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

432

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

49

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

13

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.5万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号