ホームページ  >  記事  >  バックエンド開発  >  【オリジナル】PHP文字列とバイト配列の高速交換

【オリジナル】PHP文字列とバイト配列の高速交換

WBOY
WBOYオリジナル
2016-06-13 13:04:45935ブラウズ

[オリジナル] PHP文字列とバイト配列のクイック交換

??????? 暗号化するには、文字列を ASCII バイト配列に変換する必要があります。それ以外の場合は、元に戻してください。コードが速いのはなぜですか?つまり、FOR ループを回避できる場合は、それを使用しないでください。 PHP独自の関数を使って実装するのが一番早いです。

<?php
function stringToByteArray($str,$charset) {

    $str = iconv($charset,'UTF-16',$str);
    preg_match_all('/(.)/s',$str,$bytes);  //注:本文的盗版已经有了。不过,提示一下读者,这里的正则改了。
    $bytes=array_map('ord',$bytes[1]) ;
    return $bytes;

}

function byteArrayToString($bytes,$charset) {

    $bytes=array_map('chr',$bytes);
    $str=implode('',$bytes);
    $str = iconv('UTF-16',$charset,$str);
    return $str;

}

$byteArray=stringToByteArray('13亿人口大国,自认为精通PHP的还是相当多的!','utf-8');
print_r($byteArray);
$retStr=byteArrayToString($byteArray,'utf-8');
echo $retStr;

?>

?

各関数のコードはわずか 4 行で、FOR ループはありませんが、テキストが非常に長い場合、その違いは非常に大きいことがわかります。

?

?

注: 読者の皆様に留意していただきたいのですが、特に再投稿として示されていない限り、私のブログ投稿はすべてオリジナルです。ネット上には海賊版が多数出回っています。ただし、ブログ投稿が公開されると、コンテンツを追加するために何度も編集されたり、欠陥により修正が必要になる場合があります。したがって、オリジナルの本物のバージョンをご覧になりたい場合は、ここに来てください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。