Zend_Mailでの文字化け対策

Zend Framework 1.7のZend_Mailをメール送信ライブラリとして使おうとしたところ、差出人と宛先を日本語にしたら文字化けしやがった!!ほんまに、Zend Frameworkは、マルチバイト文字に弱いな…。(というのが俺の印象)

というわけで、文字化けを解消するため、Zend_Mail::setFromの修正。616行目くらい。

<?php
	if ($encodedName === $name && strpos($name, ',') !== false) {
		$format = '"%s" <%s>';
	} else {
		// $format = '%s <%s>'; // どちらにしても、""で囲むようにする
		$format = '"%s" <%s>';
	}
?>

それと、Zend_Mail::_addRecipientAndHeaderも。521行目くらい。

<?php
	if ($encodedName === $name && strpos($name, ',') !== false) {
		$format = '"%s" <%s>';
	} else {
		// $format = '%s <%s>'; // どちらにしても、""で囲むようにする
		$format = '"%s" <%s>';
	}
?>

とりあえず、これで解決っぽいです。
手間がかかるけど、作っちゃったから、使うかね~。


ASCII.jpで紹介されてた!

久々に、アクセス解析ツールを見てみたら、
ここ数日ちょっと多めのアクセスになってたので、
更新したからかな~なんて思ってたら大間違いw

参照サイトのドメインが、ascii.jpがダントツで多い。
自転車サイトなのに、なぜascii.jp?と思っていたら、
どうもアスキーでサイトが紹介されてたみたいだ。

『なんのための自転車生活なのか?』
http://ascii.jp/elem/000/000/218/218294/

このページの2ページ目で、紹介されてた。
あぁ~、ありがたや~。

何のために自転車通勤するかって、まあ人それぞれだとは思いますが
(俺は自転車乗ってないとストレス溜まるから、ストレス解消かな?)
経済的な面でとても有利だから、自転車オススメですよホントに。

会社の近くに駐車場借りて通勤してる人いますけど、
駐車場の料金だけで月5,000円くらいかかるわけで、
ガソリン代とかも考えたら10万円の自転車買ったとしても
1年で余裕で元は取れるんです。
運動にもなるから、太りにくくなるし。
全然運動してなかった人は、痩せるでしょうし。

そう考えたら自転車通勤圏内のカー通勤の人にとっては、
10万円の自転車なんて、高くないですよ。
既に自転車通勤してる人にとっては、10万円は高いけど。
ガソリンの値段がめっちゃ上がった去年も、
自分は大して影響受けてないです。
(むしろ車に乗らなさ過ぎて、自動車保険が高いという…でも車は必要)


MBFPDFを使ってみた感想

昨日の続き。PDF出力をするためのPHPライブラリを探してて、Zend_Pdfを使ってみたが、日本語フォントを指定したらあまりにも処理に時間がかかるため、MBFPDFを使ってみたという話。

結論としては、これ、いいぜ!ということ。処理も軽い。軽いというか、フォントをPDFに含めてないんだろうな~と思うけど。Zend_Pdfでも、MS MINCHOとかをPDFに含めずに作ったらいけるのかも知れないが、MBFPDFでいけちゃったから、このままにしようと思う。今日は既存のPDFファイルに対して文字を書いて出力という実験を行ってた。だいたいやり方もわかった。まあ、あとは資料待ちですわ。

思ったよりもPDFを扱うのが簡単だったので、びっくりしたけど(ライブラリのおかげだっつーの!)、これなら注文書と見積書を書くようなプログラムも案外簡単に出来るな~と思った。

さて、通勤用自転車について、最近更新中です。
ずっと簿記の勉強してて、サイトを疎かにしてたので、手を入れて、また新しい情報とかも収集しないとと思います。


PHPでPDF出力に挑戦中

C#が一応終わって、いよいよObjective-C開発やってiPhoneアプリ作ろうと。自分がやりたいことは加速度センサを使うので、それを使えるところまで、先週確認した。さて、今週からやるぞ~!!と思ってたら、今度はPHPの仕事をやってほしいそうだ…。うちのプログラマのほかの2人はiPhoneアプリ開発の佳境に入っているので、動けるのは俺だけっつーことで、まあしゃーないかということで、久々にPHPです。久々っていっても、1ヶ月ぶりくらいだろうか?

今回は、PHPでPDFを出力してほしいということだ。俺はPHPでPDFの出力をまだやったことないので、新しい技術を手に入れるまたとない機会だなぁということで、話を聞いていると案件はあるけれど資料はまだ全然来てませんだと…。それでやってくださいって言われてもなぁ~…。というても、やるべきことはだいたいわかっているわけだから、PHPでPDF出力がちゃんとできるかというところまでを確認しとくかと思い、とりあえずやってみることに。

今回はフォーム1ページと確認ページ程度なので、フレームワークとか使うのもオーバースペックなので、サラッと3つのphpファイルを書いた(確認ページからPDFファイルを出力するため、3つ)。

PDF出力をするためのライブラリとして、候補に挙がったのが、Zend_Pdf。ちゅーことでZend_Pdfを使ってやってみたが、日本語が出ない…。デフォルトで使えるフォントでは、マルチバイト文字に対応できてないみたいだった。

IPAフォントをダウンロードしてきて、ゴシックフォントをパス指定で使ってみたら、サーバタイムアウトした。php.iniを編集して、タイムアウトを120秒(デフォルトでは60秒)にしたところ、ちゃんと日本語が出力された。なるほど、処理はできている。が、あまりにも長い…。これでは使い物にならん。

読み込んだPDFからフォントを取得し、そのフォントを使ってPDFを更新できるとあったので、適当なPDFファイルを読み込んでやってみようとしたら、フォントがない場合もあるみたいで、ダメだった。うーん、まだわからんことが多いけれど、とりあえず重過ぎる。Zend_PdfはZend Frameworkのバージョンが1.5になるまではマルチバイト対応もできてなかったということだから、まだ信頼性に欠けるのかもしれない。

青マンモス本を見たら、FPDFというフリーのPDF出力ライブラリもあるようだった。MBFPDFというマルチバイト対応に拡張されたものがあるみたいで、これをインストールするところまで行った。明日はこれを試してみることにする。それにしても、Zend Frameworkって、微妙にマルチバイトに弱いよな~…。いや、俺が知らないだけなんだろうか?


CakePHPの新しい本が出るらしい

CakePHPの新しい本が出るらしい。著者が、CakePHPガイドブックの方なので安心。それと、個人的に楽しみなのは、Webアプリケーションテスト手法を書かれた岸田さんも著者におられること。CakePHPのテスト駆動開発方法が書かれているっぽいので、これは期待大!

あと、ケータイ対応とかについてもあるらしい。早速、アマゾンで予約しました!!

最近はCakePHPやれてないけれど、CakePHP1.2でヒルクライムしようぜ!をリプレースするのが3月中の目標。ほぼスタティックなサイトを作るにしても、CakePHPのほうがケータイ対応とかが理解できながら作れるから、DB使わないようなサイトでもCakePHPでやろうかな~とか。

CakePHPによる実践Webアプリケーション開発
CakePHPによる実践Webアプリケーション開発 安藤 祐介

毎日コミュニケーションズ 2009-03-26
売り上げランキング : 798

Amazonで詳しく見る by G-Tools