[オリジナル] 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 ループはありませんが、テキストが非常に長い場合、その違いは非常に大きいことがわかります。
?
?
注: 読者の皆様に留意していただきたいのですが、特に再投稿として示されていない限り、私のブログ投稿はすべてオリジナルです。ネット上には海賊版が多数出回っています。ただし、ブログ投稿が公開されると、コンテンツを追加するために何度も編集されたり、欠陥により修正が必要になる場合があります。したがって、オリジナルの本物のバージョンをご覧になりたい場合は、ここに来てください。