亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP也能干大事之PHP中的編碼解碼詳解

2020-03-22 19:32:12
字體:
來源:轉載
供稿:網友
寫在前面 PHP也能干大事是我總結的html' target='_blank'>PHP語法特性及相關函數類庫的經典用法,并不一定是真正能實現四兩撥千斤的功效,但是掌握這些方法,可以在你的工作和學習上有一些幫助,希望大家能集思廣益,將《PHP也能干大事》豐富得更精彩!轉載請注明出處(phpstudy.net) 二、前言 PHP是常見的腳本語言,主要是因為其簡單易學,上手快,幾乎50%以上的Web程序都有PHP的身影(不完全統計)。PHP為開發這提供了豐富的函數和API接口,這使得我們能夠非常方便地使用其強大的內置函數及擴展,本文是《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基本函數內置了ASCII的編解碼函數,這使得我們能輕松進行ASCII編解碼。 int ord ( string $string ) //返回字符串 string 第一個字符的 ASCII 碼值。
string chr ( int $ascii ) //返回相對應于 ascii 所指定的單個字符。
'!@#$%^&*()_+=-~`[]{}|/;:'" ,./ '
);
foreach ($str_arr as $key = $value) {
echo $value," - ",urlencode($value)," ";
}
/* @OUTPUT
www.phpstudy.net - www.phpstudy.net
http://www.phpstudy.net/ - http%3A%2F%2Fwww.phpstudy.net%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%5B%5D%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請求次數。
http://www.ascii.cl/htmlcodes.htm string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = “UTF-8″ [, bool $double_encode = true ]]] ) //對包含如下HTML特殊字符進行HTML實體編碼
1.'&' (ampersand) becomes ‘ '
2.'”‘ (double quote) becomes ‘ ' when ENT_NOQUOTES is not set.
3.”‘” (single quote) becomes ‘ ' (or ) only when ENT_QUOTES is set.
4.' ‘ (less than) becomes ‘ '
5.' ' (greater than) becomes ‘ ' string htmlspecialchars_decode (string $string [, int $flags = ENT_COMPAT | ENT_HTML401 ]) //此函數的作用和 htmlspecialchars() 剛好相反。它將特殊的HTML實體轉換回普通字符。
還有功能相同的函數htmlentities/html_entity_decode,這對函數甚至對漢字都進行了HTML實體編碼,而且會產生亂碼,所以建議使用htmlspecialchars進行編解碼。 案例:防止XSS跨站腳本攻擊,需要對用戶提交的數據進行HTML實體轉換: 復制代碼 代碼如下:
php
$_POST['message'] = '測試留言字符'" sCript src=http://www.phpstudy.net/hook.js
if (empty($_POST['message'])) {
exit('Message is NULL');
}
$message = htmlspecialchars(trim($_POST['message']));
echo $message;
/* @OUTPUT
測試留言字符' sCript src=http://www.phpstudy.net/hook.js
*/

5、二進制、八進制、十進制、十六進制相互轉換 進制之間的轉換這里沒什么好說的,總之都差不多,只要記住多少進制就是逢多少進一位,比如10進制就是9的下一位就是10,二進制、八進制、十六進制以此類推。 string bin2hex (string $str) //返回 ASCII 字符串,為參數 str 的十六進制表示。轉換使用字節方式,高四位字節優先。
string hex2bin (string $data) //轉換十六進制字符串為二進制字符串。
number bindec (string $binary_string) //返回 binary_string 參數所表示的二進制數的十進制等價值。
string decbin (int $number) //返回一字符串,包含有給定 number 參數的二進制表示。所能轉換的最大數值為十進制的 4294967295,其結果為 32 個 1 的字符串。
number octdec (string $octal_string) //返回 octal_string 參數所表示的八進制數的十進制等值。
string decoct (int $number) //返回一字符串,包含有給定 number 參數的八進制表示。所能轉換的最大數值為十進制的 4294967295,其結果為 “37777777777”。
string base_convert (string $number , int $frombase , int $tobase) //任意進制轉換,返回一字符串,包含 number 以 tobase 進制的表示。number 本身的進制由 frombase 指定。frombase 和 tobase 都只能在 2 和 36 之間(包括 2 和 36)。高于十進制的數字用字母 a-z 表示,例如 a 表示 10,b 表示 11 以及 z 表示 35。 6 、GBK、UTF-8字符編碼轉換 在寫代碼過程中,經常遇到編碼問題而引發的亂碼。其實解決編碼問題非常簡單,只要使用一種編碼即可,一般來說,采用萬國碼——UTF-8是最好的選擇。 這里說的編碼是文字編碼和文件存儲的編碼,當然,不得不提到系統的編碼的差異性: 系統 編碼 字符結尾
Windows GBK
*nix UTF-8 所以在處理特殊字符的時候要特別注意。 常見的編碼有GBK、UTF-8等等,函數使用上一般采用兩種: string mb_convert_encoding (string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ]) //將 string 類型 str 的字符編碼從可選的 from_encoding 轉換到 to_encoding。
string iconv (string $in_charset , string $out_charset , string $str) //將字符串 str 從 in_charset 轉換編碼到 out_charset。 案例:Windows系統,架設了一個WAMP服務器,將如下腳本另存為一個UTF-8編碼的php文件,即可通過瀏覽器查看無亂碼的php目錄里的文件;如果不是用mb_convert_encoding轉碼,將直接導致輸出亂碼(Windows作為服務器)。 復制代碼 代碼如下:
php
function getDir($dir){
static $string = '';
if(is_file($dir)){
$string.= $dir;
}else{
$oDir = @opendir($dir);
while($fileName = readdir($oDir)){
if($fileName!='.' && $fileName!='..'){
if(is_file($dir.'/'.$fileName)){
$string.=$fileName." ";
}elseif(is_dir($dir.'/'.$fileName)){
$string.= $dir.'/'.$fileName.'/'." ";
getDir($dir.'/'.$fileName);
}
}
}
}
return $string;
}
echo mb_convert_encoding( getDir('php'),'utf8', 'gbk' );


四、總結 編碼是數據的處理的基礎,所以在PHP的編程開發過程中是相當重要的。對于PHP的處理方法,應用在編程中還需要數量掌握,特別有些相似函數要如何區分。轉載請注明出處(phpstudy.net)PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品久久久久a| 欧美视频在线观看免费| 疯狂蹂躏欧美一区二区精品| 久久国产精品首页| 亚洲精品美女在线观看| 亚洲国产精品热久久| 久久久91精品国产一区不卡| 国外视频精品毛片| 亚洲国产精品国自产拍av秋霞| 亚洲成色777777在线观看影院| 福利一区视频在线观看| 成人亲热视频网站| 欧美成人免费va影院高清| 久热精品视频在线免费观看| 原创国产精品91| 国内精品久久久久伊人av| 欧美成人亚洲成人| 日韩av网站导航| 午夜剧场成人观在线视频免费观看| 亚洲人成网站色ww在线| 欧美精品在线第一页| 欧美在线视频在线播放完整版免费观看| 日韩视频在线一区| 亚洲欧美精品伊人久久| 欧美日本高清视频| 日韩精品在线观看网站| 一本色道久久88亚洲综合88| 日韩国产在线播放| 国外成人在线直播| 久久精品久久久久久| 97超级碰碰碰| 日韩男女性生活视频| 91亚洲精华国产精华| 狠狠色狠色综合曰曰| 欧美专区中文字幕| 欧美电影在线观看完整版| 色偷偷亚洲男人天堂| 欧美激情性做爰免费视频| 亚洲视频在线观看| 性日韩欧美在线视频| 国产成人亚洲综合91精品| 久久精品91久久久久久再现| 久久视频在线观看免费| 日韩中文字幕av| 精品日韩视频在线观看| 欧美老少做受xxxx高潮| 国产国语刺激对白av不卡| 亚州欧美日韩中文视频| 亚洲小视频在线| 亚洲网站在线播放| 久久久精品欧美| 欧美一级高清免费| 国产成人亚洲精品| 国产精品人成电影| 性色av一区二区三区红粉影视| 国产精品久久久久久久电影| 国产欧美日韩综合精品| 国产一区二区三区在线免费观看| 亚洲直播在线一区| 中文字幕精品在线视频| 精品免费在线观看| 国产z一区二区三区| 亚洲有声小说3d| 亚洲欧美三级伦理| 中文字幕亚洲欧美一区二区三区| 秋霞成人午夜鲁丝一区二区三区| 日韩av色综合| 国产成人精品免高潮费视频| 亚洲精品电影网在线观看| 欧美老女人xx| 成人免费在线视频网址| 午夜精品美女自拍福到在线| 亚洲精品综合久久中文字幕| 精品久久中文字幕| 中文字幕在线看视频国产欧美| 亚洲bt天天射| 久久久久久久香蕉网| 国产高清在线不卡| 久久免费在线观看| 欧美性理论片在线观看片免费| 国产精欧美一区二区三区| 国产又爽又黄的激情精品视频| 午夜剧场成人观在线视频免费观看| 色婷婷亚洲mv天堂mv在影片| 欧美大肥婆大肥bbbbb| 欧美日韩中文字幕| 亚洲欧美国内爽妇网| 91九色国产视频| 国产日韩欧美在线| 久久久久中文字幕| 最新亚洲国产精品| 欧美午夜性色大片在线观看| 久久久久久久久91| 久久久久久国产免费| 黄色成人av在线| www.亚洲一二| 久久久精品视频成人| 国产精品成人国产乱一区| 日韩免费在线看| 亚洲高清免费观看高清完整版| 51视频国产精品一区二区| 91精品国产91久久久久久不卡| 欧美与欧洲交xxxx免费观看| 亚洲欧美日韩天堂一区二区| 在线亚洲国产精品网| 永久555www成人免费| 国产精品高潮粉嫩av| 亚洲欧美日韩精品久久亚洲区| 一区二区三区视频免费在线观看| 国产精品美女无圣光视频| 亚洲福利在线播放| 亚洲综合社区网| www日韩中文字幕在线看| 欧美性精品220| 精品国产一区久久久| 亚洲国产日韩欧美在线图片| 国产亚洲精品美女久久久久| 亚洲激情在线观看| 亚洲欧美日韩中文在线制服| 在线观看日韩av| 亚洲黄色免费三级| 欧美孕妇性xx| 中文字幕精品影院| 国产伊人精品在线| 欧美激情视频网址| 国产拍精品一二三| 国产主播在线一区| 高清欧美性猛交| 欧美刺激性大交免费视频| 国产欧美在线视频| 亚洲 日韩 国产第一| 欧美成人全部免费| 久久久久久久久久久免费精品| 精品免费在线观看| 久久中文字幕在线视频| 91精品国产高清自在线看超| 九色精品美女在线| 精品久久久久久中文字幕大豆网| 亚洲一区二区久久久久久| 午夜精品久久久久久久99热| 日韩电影中文字幕在线观看| 亚洲 日韩 国产第一| 欧美超级免费视 在线| 久久久视频免费观看| 日韩av影视综合网| 亚洲一区二区久久| 精品呦交小u女在线| 美日韩丰满少妇在线观看| 久久综合国产精品台湾中文娱乐网| 日韩麻豆第一页| 亚洲国产成人爱av在线播放| 18一19gay欧美视频网站| 久久久久久久久久久成人| 亚洲午夜国产成人av电影男同| 欧美激情伊人电影| 伊人伊成久久人综合网小说| 美日韩在线视频| 992tv成人免费视频| 日本亚洲精品在线观看| 亚洲一区二区三区久久| 成人美女免费网站视频| 久久久午夜视频| 日韩美女主播视频| 久久久久久网站|