同人サークル『ばんり組!』のブログです。百合アンソロジー「神様はなにも禁止なんかしてない」3月21日リリース!

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
-------- : スポンサー広告 :
Pagetop

「PHP Warning: htmlspecialchars() expects at most 3 parameters, 4 given」ってなんだよ!?

はまった。
環境は以下のようなカンジ。

Smarty-3.1.3
PHP5.1.6


Smarty で escape 修飾子をかますと文字が表示されないという怪奇現象発生!
Apache のエラーログ見ると、コンパイルされたテンプレートファイルにタイトルのエラーが出てますよ、とか言われる。で、コンパイルされたファイルの該当箇所を見ると

<?php echo htmlspecialchars($_smarty_tpl->tpl_vars['arr']->value['user'], ENT_QUOTES, 'UTF-8',true) ;?>


となっている。で PHP マニュアルで htmlspecialchars() 調べてみると

string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $charset [, bool $double_encode = true ]]] )


って書いてあるんだよね。引数4つじゃんよ。最大3つって????

でひとまず Smarty 側で対応。

/var/www/html/Smarty/libs/plugins/modifiercompiler.escape.php


を修正。

return 'htmlspecialchars('
. $params[0] .', ENT_QUOTES, '
. var_export($char_set, true) . ', '
. var_export($double_encode, true) . ')';


の最後の行をとって

return 'htmlspecialchars('
. $params[0]
. ', ENT_QUOTES, '
. var_export($char_set, true) . ') ';


こんなカンジに。
無事動くようにはなりました。
PHP をバージョンアップしないとダメかなぁ~…。
(どうやら引数が4つになったのは5.2以降らしい。それ以前は3つだったんだって。知らんがな!)
スポンサーサイト
2011-10-09 : WEB技術 : コメント : 0 : トラックバック : 0
Pagetop
コメントの投稿
非公開コメント

Pagetop
« next  ホーム  prev »

プロフィール

忍@ばんり組!

Author:忍@ばんり組!
同人サークル「ばんり組!」の忍といいます。サークルといってもぼっちですw ジャンルは百合ですv

2009年に百合ビジュアルノベル「四月になれば彼女は」を制作。
2011年は、百合アンソロジー「神様はなにも禁止なんかしてない」を全力配布中!
2012年は秋葉原出身の某大人数アイドルグループに突如目覚め、イベントだの握手会だのに楽しく年貢を納めて東奔西走しています!(同人活動どこ行った←

※ここで書いているのは、あくまでワタクシ一個人としての意見です。当サークルの作品に参加された方々とは一切無関係です。ご了承下さい。

検索フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。