Der Unterschied zwischen Zeichen und Bytes in PHP und detaillierte grafische Erklärung der String- und Byte-Konvertierung

墨辰丷
Freigeben: 2023-03-28 19:34:02
Original
1783 Leute haben es durchsucht

In PHP sind Zeichen abstrakte Einheiten, die mithilfe vieler verschiedener Zeichenschemata oder Codepages dargestellt werden können. Ein Byte ist eine Einheit zum Übertragen von Informationen über ein Netzwerk (oder zum Speichern von Informationen auf einer Festplatte oder im Speicher). In diesem Artikel werden auch Beispiele für die String- und Byte-Konvertierung in PHP anhand von Beispielen vorgestellt. Interessierte Freunde sollten einen Blick darauf werfen

Zeichen:

Zeichen sind abstrakte Einheiten , die mithilfe vieler verschiedener Zeichenschemata oder Codepages dargestellt werden können. Beispielsweise stellt die Unicode UTF-16-Kodierung Zeichen als Folge von 16-Bit-Ganzzahlen dar, während die Unicode UTF-8-Kodierung dieselben Zeichen als Folge von 8-Bit-Bytes darstellt. Die Common Language Runtime verwendet Unicode UTF-16 (Unicode Transformation Format, eine 16-Bit-Kodierung) zur Darstellung von Zeichen.

PHP in der UTF-8-Kodierung belegt ein chinesisches Zeichen 3 Zeichen und in der GBK-Kodierung nur 2 Zeichen.

Byte:

Byte dient zur Übertragung von Informationen über das Netzwerk (oder zum Speichern von Informationen auf der Festplatte oder im Speicher).

Anwendung:

Wenn die Tabelle in der Datenbank UTF8-kodiert ist und das Feld auf maximal 10 Zeichen eingestellt ist, beträgt die maximale Speicherlänge z. B.: „Ich bin 1 '

Schauen wir uns das PHP-String- und Byte-Konvertierungsbeispiel an

<?php 
/** 
* byte数组与字符串转化类 
*/
class Bytes { 
/** 
* 转换一个String字符串为byte数组 
* @param $str 需要转换的字符串 
* @param $bytes 目标byte数组 
* @author Zikie 
*/
public static function getBytes($string) { 
$bytes = array(); 
for($i = 0; $i < strlen($string); $i++){ 
$bytes[] = ord($string[$i]); 
} 
return $bytes; 
} 
/** 
* 将字节数组转化为String类型的数据 
* @param $bytes 字节数组 
* @param $str 目标字符串 
* @return 一个String类型的数据 
*/
public static function toStr($bytes) { 
$str = &#39;&#39;; 
foreach($bytes as $ch) { 
$str .= chr($ch); 
} 
return $str; 
} 
/** 
* 转换一个int为byte数组 
* @param $byt 目标byte数组 
* @param $val 需要转换的字符串 
* 
*/
public static function integerToBytes($val) { 
$byt = array(); 
$byt[0] = ($val & 0xff); 
$byt[1] = ($val >> 8 & 0xff); 
$byt[2] = ($val >> 16 & 0xff); 
$byt[3] = ($val >> 24 & 0xff); 
return $byt; 
} 
/** 
* 从字节数组中指定的位置读取一个Integer类型的数据 
* @param $bytes 字节数组 
* @param $position 指定的开始位置 
* @return 一个Integer类型的数据 
*/
public static function bytesToInteger($bytes, $position) { 
$val = 0; 
$val = $bytes[$position + 3] & 0xff; 
$val <<= 8; 
$val |= $bytes[$position + 2] & 0xff; 
$val <<= 8; 
$val |= $bytes[$position + 1] & 0xff; 
$val <<= 8; 
$val |= $bytes[$position] & 0xff; 
return $val; 
} 
/** 
* 转换一个shor字符串为byte数组 
* @param $byt 目标byte数组 
* @param $val 需要转换的字符串 
* 
*/
public static function shortToBytes($val) { 
$byt = array(); 
$byt[0] = ($val & 0xff); 
$byt[1] = ($val >> 8 & 0xff); 
return $byt; 
} 
/** 
* 从字节数组中指定的位置读取一个Short类型的数据。 
* @param $bytes 字节数组 
* @param $position 指定的开始位置 
* @return 一个Short类型的数据 
*/
public static function bytesToShort($bytes, $position) { 
$val = 0; 
$val = $bytes[$position + 1] & 0xFF; 
$val = $val << 8; 
$val |= $bytes[$position] & 0xFF; 
return $val; 
} 
} 
?>
Nach dem Login kopieren

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Verwandte Empfehlungen:

Detaillierte Erläuterung des PHP-Datei-Upload-Verarbeitungsfalls

Einfacher Fall der PHP-Linked-List-Operation

phpIdeen für die Implementierung von Datenbank-Caching

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Zeichen und Bytes in PHP und detaillierte grafische Erklärung der String- und Byte-Konvertierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage