ラベル PHP の投稿を表示しています。 すべての投稿を表示
ラベル PHP の投稿を表示しています。 すべての投稿を表示

2010年3月15日月曜日

続 Zend_Mailの文字化け対策

Zend_Mailの文字化け対策の続きです。
漢字で登録した送信者名の文字化けを防止するには、
Mail.phpの protected function _formatAddress($email, $name)関数内の
$encodedName = $this->_encodeHeader($name); を
$encodedName = mb_encode_mimeheader($name, 'ISO-2022-JP'); へと
変更することで対応できます。
また、長いサブジェクトの後ろ文字化けを防止するには
protected function _encodeHeader($value)関数内の
Zend_Mime::LINEENDを、'' へとに変更することで対応できます。

2009年8月23日日曜日

allow_url_fopenがoffのサーバで imagecreatefromstring

google Chart からレスポンスされる画像をサーバに保存し、結果をPDF出力ページ内に挿入しようとしました。
で、このアプリを利用していただくユーザ様のレンタルサーバの設定状況を確認してみると、allow_url_fopenがoffとなっていて、レスポンスをそのままimageCreateFromPngで画像リソース化することができないことがわかりました。
そこで、Zend Framework の HttpClientクラスを使用することにより、この問題を簡単にクリアすることができましたので、ここに「おぼえがき」を書きました。

インクルードは
require_once 'Zend/Uri.php';
require_once 'Zend/Http/Client.php';
の2つ

まず、
Zend_Uri::setConfig(array('allow_unwise' => true));
として、googleChartに渡すパラメータに含まれる |  なども指定可と変更
つづいて
$client = new Zend_Http_Client("http://chart.apis.google.com/chart?.........");
$respose = @$client->request();
if($this->respose->isError()){
return false;
}
$img = @imagecreatefromstring($this->respose->getRawBody());

とすることで、allow_url_fopen offの環境でも無事に画像リソースを外部サーバから受け取ることができます。