Category Archives ( 5 Posts)

fputcsv関数の改行コード

CSV出力時に使うfputcsv関数の改行コードはOS に依存するので、Linuxサーバーでfputcsvを使うと改行コードがLFになる。

出力したCSVファイルをローカル(Windows)で開く時、ExcelやAccessではLFでも改行してくれるけど、
Windows標準のnotepadでは改行されない。(WindowsではCR+LF)

メモ帳にnotepad使わないから、すっかり改行コードについて見落としてた・・・・。
(一応ヘッダーには改行コードr\n"で入れてたのに)

fputcsv関数の改行コードについて、どうしたものかと調べていたら、
九州男児Webプログラマの備忘録」様に掲載されていた方法で上手くいきました。


$outputFile = 'data.csv';
$csv_data = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789')
);
//fputcsvでCSVファイル書き込み
$fp = fopen($outputFile,'w');
foreach($csv_data as $line){
	fputcsv($fp,$line);
}
rewind($fp);

$buf = str_replace("\n", "\r\n", stream_get_contents($fp));
fclose($fp);

$fp = fopen($outputFile, 'w');
fwrite($fp, $buf);
fclose($fp);


エンコードできなかった時に置き換える文字を指定する

//エンコードする前にここで指定
mb_substitute_character(0x3013);
//この場合〓に変更
$str = "文字列";
$str = mb_convert_encoding($str,"sjis-win", "UTF-8");

正常にエンコードできなかった時に指定した文字に置き換えされる。
文字の指定はUnicodeの数値で指定する。
参考:Unicode対応 文字コード表
 

PDF出力にTCPDFを使う。

らPDFの出力にFPDFとMBFPDFというライブラリを利用していたが、
出力するデータの文字コードをShift-JISに変換する必要があって(UTF-8環境)、
JIS第3水準・第4水準あたりの漢字が出力できなかった。

で、人名の出力に利用していたので、困ったなということになって・・・、
UTF-8でPDFを出力できるライブラリがありました。
READ MORE

FPDFで使用するフォントを追加

PHPからPDFファイルを作成するための無料ライブラリFPDFで、
使用するフォントを追加するためのメモ。(日本語対応:MBFPDF使用)

今回は郵便振替の用紙を出力に必要だったのでOCRBフォントを追加する。

●フォントファイルを探す。(OCRB.TTF)

●TTFフォントからafmファイルを生成する。
(ttf2pt1.exeが必要です。ない場合は、下記手順でダウンロードできます。)
  1. FPDFのScriptのページから、Yann Sugereさんの「AddFont」をZIPでダウンロードして、解凍。
  2. Cドライブ直下とか、分かりやすいところ「addfont」フォルダをコピー
  3. addfontフォルダ内にフォントファイルをコピー
  4. コマンドプロンプトを起動して、addfontに移動(cd C:\addfont)
  5. ttf2pt1.exeを実行(ttf2pt1 -b OCRB.TTF OCRB)
  6. これでaddfont内にOCRB.afmが生成される。
●フォントを追加。定義ファイル(mbfpdf.php)を更新する。
(ローカルでPHPが動けばローカルで、PHPがなければサーバーにアップロードして、コマンドを実行。)
  1. fpdf/font/makefontにOCRB.afmをコピー
  2. mkttfdef.phpの13行目を変更($work = "OCRB.afm";)
  3. mkttfdef.phpを実行(php mkttfdef.php)
  4. fpdf/mbfpdf.phpにフォント名を追加(DEFINE("OCRB","OCRB");)
無事、OCRBフォントを追加して使用することができました。

FPDFを導入する際、参考にさせて頂きました。 こちらの記事も気になります。

PHPの変数の中身がものすごく知りたい時に便利dBug.php

WordPressのカスタマイズやプログラムのデバッグ中、
変数の内容を確認したい時に「print_r」で出力するよりも見やすい超便利なデバッグツール。

http://dbug.ospinto.com/

使い方
  1. こちらのサイトのダウンロードでdBug.phpをダウンロードします。
  2. サーバーの任意の場所にアップロードします。
  3. 確認したい変数のあるPHPファイルに下のおまじない文を書いて、呼び出します。
  4. ブラウザでそのPHPファイルを確認すると、中身が分かりやすく表示されます。
//中身がでるでるおまじない
include_once("dBug.php");//ここでアップしたdBug.phpを呼び出して
new dBug($変数);//確認したい変数いれる
デバッグ中、意図した表示ができない時、すぐおまじない書きます。
データベースリソースにも使えるので、便利です。
READ MORE