この記事の例では、PHPイメージのバイナリ変換の実装方法を説明します。参考のためにみんなで共有してください。具体的な実装方法は以下の通りです
ここでは、ファイルをアップロードするときにアップロードされたファイルをバイナリに変換し、それをデータフィールドに保存します。次回読み出すときに同じ方法を使用して表示できます。
HTMLコードは次のとおりです:
「w」は書き込み用にファイルを開き、ファイル ポインタは先頭を指し、元のファイルの長さは 0 に設定されます。ファイルが存在しない場合は、新しいファイルを作成します。
「w+」はファイルを読み取り/書き込みモードで開き、ファイル ポインタは先頭を指し、元のファイルの長さは 0 に設定されます。ファイルが存在しない場合は、新しいファイルを作成します。「a」は書き込み用にファイルを開き、ファイル ポインタはファイルの末尾を指します。ファイルが存在しない場合は、新しいファイルを作成します。
「a+」はファイルを読み取り/書き込みモードで開き、ファイル ポインタはファイルの末尾を指します。ファイルが存在しない場合は、新しいファイルを作成します。「b」オペレーティング システムのテキスト ファイルとバイナリ ファイルが異なる場合は、このパラメータを使用できます。UNIX システムではこのパラメータを使用する必要はありません。
2.スラッシュ機能を追加します
Addslashes 関数は文字列にスラッシュを追加するために使用されます。注: 私がテストしたときは、この関数を削除しました。その理由は、自分で試してみるとわかります。
文字列はラッシュを追加します(文字列 str);
この関数は、データベースによる処理が必要な文字列の引用符にスラッシュを追加して、データベース クエリがスムーズに動作できるようにします。変更される文字には一重引用符 (') と二重引用符 (") が含まれます。 backslash() と null 文字 NULL (null バイト)。
3. フレッド関数fread 関数は、指定された長さのバイト グループ、またはファイルの EOF の終わりまで読み取るために使用されます。構文は次のとおりです。
string fread(int fp, int length); バイナリ ファイルに対して安全ですfread() は、ファイル ポインター ファイルから最大 length バイトを読み取ります。または、EOF に達したとき、または (ネットワーク ストリームの場合) パケットが利用可能なとき、または (ユーザー空間ストリームを開いた後のとき) を読み取ります。 ) 最初にどの状況が発生したかに応じて、8192 バイトが読み取られたときにファイルの読み取りを停止します。
バイナリを画像に変換します
注: $newFilePath は、生成されたイメージの名前とパスを処理します。コードは次のとおりです。
コードをコピーします
コードは次のとおりです:
$data = $GLOBALS[HTTP_RAW_POST_DATA];//ポストされたバイナリ生データを取得します
if(空の空($data)){
$data=file_get_contents("php://input");
}
$newFile = fopen($newFilePath,"w");//ファイルを開いて書き込みの準備をします
fwrite($newFile,$data);//バイナリストリームをファイルに書き込みます
fclose($newFile);//ファイルを閉じます
読み取ったバイナリ ストリームをデータベースに保存することも、画像に直接書き込んでバイナリ ヘッダー ファイルを取得して、それが属するファイルの種類を知ることもできます。コードは次のとおりです。
スイッチ ($typeCode)
{
ケース 7790:
$fileType = 'exe';
休憩
ケース 7784:
$fileType = 'midi';
休憩
ケース 8297:
$fileType = 'rar';
休憩
ケース 255216:
$fileType = 'jpg';
休憩
ケース 7173:
$fileType = 'gif';
休憩
ケース 6677:
$fileType = 'bmp';
休憩
ケース 13780:
$fileType = 'png';
休憩
デフォルト:
エコー「不明」
}
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
http://www.bkjia.com/PHPjc/928231.html
www.bkjia.com
技術記事