タグ

php5とWeb開発に関するnao-tのブックマーク (3)

  • PHP: PHP 5.3.x で推奨されない機能 - Manual

    PHP 5.3.x で推奨されない機能 PHP 5.3.0 では新しく二つのエラーレベルが加わりました。 E_DEPRECATED と E_USER_DEPRECATED です。 E_DEPRECATED エラーレベルは、 特定の機能が推奨されないことを示すのに使います。 E_USER_DEPRECATED エラーレベルは、ユーザー定義のコードで推奨されない機能、たとえば E_USER_ERROR や E_USER_WARNING のようなものを示すのに使います。 INI ディレクティブで推奨されないものは以下の通りです。 これらのひとつ以上を有効にすると、起動時 E_DEPRECATED エラーが発生します define_syslog_variables register_globals register_long_arrays safe_mode magic_quotes_gpc ma

  • PHP5.3.0以上でMBFPDFを使用すると「ファイルが破損している」とエラーがでる場合の対処法 - 雑念雑記はてな出張所

    症状 PHP5.3.0以上でMBFPDFを使用してPDFを作成しようとすると、「ファイルが破損している」または「正しくエンコードされなかった」というエラーが出て、PDFが表示されなくなる。 原因 PHPでは、バージョン5.3.0以降マジッククォート機能を非推奨としており、これらの関数を使用すると警告が表示されるようになった。MBFPDFを使用している場合、この警告がPDFファイルに直接書き込まれてしまうため、不正な文字列がファイルの破損とみられ、正しく表示されなくなってしまったものと思われる。 解決法 もともとMBFPDFではマジッククォート機能を使用しておらず、一時的に機能を無効化するために関数を呼び出しているだけであるため、この関数をそのままコメントアウトさせると正常に動作する。 具体的には「mbfpdf.php」をテキストエディタで開き、下記の部分をコメントアウトする。 465 //

    PHP5.3.0以上でMBFPDFを使用すると「ファイルが破損している」とエラーがでる場合の対処法 - 雑念雑記はてな出張所
  • PHP5.4のhtmlspecialcharsに非互換問題

    第3引数を指定していない場合の影響前述のように、htmlspecialchars関数の第3引数を指定していない場合、PHP5.3までは、文字エンコーディングがISO-8859-1が指定されたとみなされます。この場合、入力内容にかかわらず不正な文字エンコーディングと判定されることはありません。したがって、文字エンコーディングのチェックが働かない代わりに、エラーになることもありませんでした。 これに対して、PHP5.4の仕様により文字エンコーディングがUTF-8とみなされた場合に、Shift_JISやEUC-JPの2バイト文字が入力されると、高い確率で「UTF-8として不正」というエラーになり、htmlspecialchars関数の出力は空になります。つまり、プログラムが正常に動作しません。 htmlspecialchars関数の第3引数を指定しておらず、内部文字エンコーディングがShift_

  • 1