• ベストアンサー

PHP4.3でapplication/x-javascript

内部コードEUC-JPで、 mb_http_output('SJIS'); ob_start('mb_output_handler'); として、利用していたのですが、 PHP4.3から、header()で、text/***以外を使うと、 mt_http_outputが自動的にpassになってしまいます。 JavaScriptを動的に生成するときに、 自前のバッファ変数にためて、 変換するみたいなことをしないといけないのですが、 もうちょっと、スマートな方法あるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

う~ん、いつのバージョンからかは失念しましたが、PHP4の仕様です。 <?php function convert($buffer) {  return (mb_convert_encoding($buffer,"SJIS")); } mb_http_output("pass"); ob_start("convert"); echo "ほげほげ!" ?> の様に強制的に変換してしまうのは駄目なのでしょうか? 何も ob_start('mb_output_handler'); しか指定できないわけではありません。 自作関数を指定できます。

参考URL:
http://jp.php.net/manual/ja/function.ob-start.php
petit-C
質問者

お礼

うまくいきました。 ob_start()の機能について、十分理解していませんでした。 ありがとうございました。

関連するQ&A