Heim > Artikel > Backend-Entwicklung > Der Unterschied zwischen Zeichen und Bytes in PHP und detaillierte Erklärung der String- und Byte-Konvertierung
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 = ''; 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; } } ?>
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.
Verwandte Empfehlungen:
PHP ruft Bildbreite, Höhe, Größe, Bildtyp und IMG-Attribut für das Layout ab
7 Möglichkeiten zur Verwendung von PHP header()
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Zeichen und Bytes in PHP und detaillierte Erklärung der String- und Byte-Konvertierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!