php判斷字符串編碼,php編碼規範有哪些

本文目錄一覽:

PHP用三元運算符判斷字符串

$str為讀出的字符串

strlen($str)30 ? echo substr($str,30).”…” : echo $str;

但是,這裡有個問題,如果字符串是漢字和字母,數字等混編的時候(類似”這是1個字符串”),漢字的截取就會出現亂碼,為避免這種情況,需要自己寫函數來實現

PHP有沒有判斷一個文件或者一段字符串是什麼編碼的函數?

測試:將 text1.txt 保存成 ASCII編碼, text2.txt 保存成 UTF-8 編碼

?php

function chkCode($string){

$code = array(‘ASCII’, ‘GBK’, ‘UTF-8’);

foreach($code as $c){

if( $string === iconv(‘UTF-8’, $c, iconv($c, ‘UTF-8’, $string))){

return $c;

}

}

return null;

}

$file = ‘text1.txt’;

echo chkCode(file_get_contents($file)); // 輸出ASCII

echo ‘br /’;

$file = ‘text2.txt’;

echo chkCode(file_get_contents($file)); // 輸出UTF-8

echo ‘br /’;

?

php 怎樣判斷字符串是哪種編碼

php中有個函數可以用來檢查當前字符串的編碼類型

mb_detect_encoding($str,array(‘ASSCII’,”GB2312′,’UTF-8));

PHP用MBString庫的函數

$e=mb_detect_encoding($text, array(‘UTF-8’, ‘GBK’));

switch($e){

case ‘UTF-8’ : //如果是utf8編碼

break;

case 『GBK』: //如果是gbk編碼

break

}

PHP mb_convert_encoding 獲取字符串編碼類型實現代碼

後來又在手冊上找到了is_utf8函數,這樣,再結合iconv函數,我的問題就解決了。下面帖出這個函數:

複製代碼

代碼如下:

function

is_utf8($string)

{

return

preg_match(‘%^(?:

[\x09\x0A\x0D\x20-\x7E]

#

ASCII

|

[\xC2-\xDF][\x80-\xBF]

#

non-overlong

2-byte

|

\xE0[\xA0-\xBF][\x80-\xBF]

#

excluding

overlongs

|

[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}

#

straight

3-byte

|

\xED[\x80-\x9F][\x80-\xBF]

#

excluding

surrogates

|

\xF0[\x90-\xBF][\x80-\xBF]{2}

#

planes

1-3

|

[\xF1-\xF3][\x80-\xBF]{3}

#

planes

4-15

|

\xF4[\x80-\x8F][\x80-\xBF]{2}

#

plane

16

)*$%xs’,

$string);

}

//

function

is_utf8

如果想深入研究,建議看下PHP手冊上的「Multibyte

String

Functions」這一部分的內容。

php 判斷字符是不是base64

PHP判斷一個字符串是否經過base64編碼,可以通過對該字符串解碼,然後編碼,最後對比兩者是否相等。示例代碼如下:

?php

header(“Content-type:text/html;charset=utf-8;”);

$str=”Y2hpbmF3aW54cA==”;

$re=is_base64($str);

if($re){

    echo “該字符串是base64編碼”;

}else{

    echo “該字符串未經過base64編碼”;

}

//判斷字符串是否經過編碼方法

function is_base64($str){

    if($str==base64_encode(base64_decode($str))){

        return true;

    }else{

        return false;

    }

}

?

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/157772.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-18 20:02
下一篇 2024-11-18 20:02

相關推薦

  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中將字符串轉化為浮點數

    本文將介紹在Python中將字符串轉化為浮點數的常用方法。在介紹方法之前,我們先來思考一下這個問題應該如何解決。 一、eval函數 在Python中,最簡單、最常用的將字符串轉化為…

    編程 2025-04-29
  • Python 常用數據庫有哪些?

    在Python編程中,數據庫是不可或缺的一部分。隨着互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的數據庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • Python通配符有哪些

    Python通配符是一種表示字符串中模糊匹配的有效工具,用於匹配與具有特定模式匹配的字符串。Python中主要的通配符有:*,?,[]和{}。 一、星號通配符 * 在Python中…

    編程 2025-04-29
  • Python學習筆記:去除字符串最後一個字符的方法

    本文將從多個方面詳細闡述如何通過Python去除字符串最後一個字符,包括使用切片、pop()、刪除、替換等方法來實現。 一、字符串切片 在Python中,可以通過字符串切片的方式來…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 註冊表取證工具有哪些

    註冊表取證是數字取證的重要分支,主要是獲取計算機系統中的註冊表信息,進而分析痕迹,獲取重要證據。本文將以註冊表取證工具為中心,從多個方面進行詳細闡述。 一、註冊表取證工具概述 註冊…

    編程 2025-04-29
  • Python函數類型有哪些

    本文將從以下幾個方面詳細闡述Python函數類型。 一、內置函數 Python的內置函數是指在Python編程語言中提供的可以直接使用的函數,不需要通過導入模塊等方式引入。 部分常…

    編程 2025-04-29

發表回復

登錄後才能評論