ホームページ  >  記事  >  バックエンド開発  >  PHPでバイナリデータを文字列に連結するにはどうすればよいですか?

PHPでバイナリデータを文字列に連結するにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 14:20:011608ブラウズ

バイナリ php utf-8 エンコーディング

たとえば、文字「you」の utf8 エンコーディングは「E4BDA0」です。
これで $arr
$arr = array(chr(228), chr(189), chr(160));

文字「you」を出力できるように配列をつなぎ合わせるにはどうすればよいでしょうか?
助けを求めています

ディスカッションに返信(解決策)

$arr = array(chr(228), chr(189), chr(160));echo join('', $arr); //你foreach($arr as $v) echo $v;for($i=0; $i<count($arr); $i++) echo $arr[$i];


echo pack('H*', 'E4BDA0');echo hex2bin('E4BDA0');

$arr = array(chr(228), chr(189), chr(160));echo join('', $arr); //你foreach($arr as $v) echo $v;for($i=0; $i<count($arr); $i++) echo $arr[$i];


echo pack('H*', 'E4BDA0');echo hex2bin('E4BDA0');

ありがとうございます~ 以下の 2 つは実行可能です ~
奇妙なことに、昨日 join を使用すると、次のように出力されました。 3 文字出しました~ 今日参加しました 利用可能です~
参加パフォーマンスがどうなのかはわかりません~

コードでループするより内部でループする結合の方が断然速いです

コードでループするより内部でループする方が確実に速いです
私はテンプレート エンジンを改善しており、タグに一致する正規表現について質問する前に 2 つの投稿を投稿しました ~ 役に立ちませんでした
構文アナライザーを自分で書く以外に選択肢はありませんでした ~ 残念ながら、PHP は次のような高性能機能をサポートしていませんこの方法を使用するとどれだけパフォーマンスが失われるかわかりません~

「心配」のために臆病にならないでください
パフォーマンスは比較から生まれます。常により多くの計画を立てる必要があります。
比較することによってのみ識別できます!

PHP は解釈されて実行され、各命令に時間がかかります。
ループが増えると、より多くの時間がかかります。再帰もループです
パターン認識、文字列関数のループは通常のループよりも優れています
イテレーターが使えるなら自分でループしないでください
...

「心配」という理由で臆病にならないでください
パフォーマンスは次によって決まりますそれに比べれば、常により多くの計画を立てることができます。
比較することによってのみ識別できます!

PHP は解釈されて実行され、各命令に時間がかかります。
ループが増えると、より多くの時間がかかります。再帰もループです
パターンを認識し、文字列関数のループは正規表現よりも優れています
イテレータを使用できる場合は自分でループしないでください
...
ありがとう〜ありがとうございます〜

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