2015年12月9日

EntryTitleやEntryBodyに「”」や「’」があった場合のエスケープ処理

仮にEntryTitleに下記の様な入力がされ、画像のALT等に入れた場合HTMLのはき出され方

「これは"テスト"です。」

MTのテンプレートはこの様に書きますが
<img src="hogehoge.jpg alt="<$mt:EntryTitle>" />

実際にHTMLにはき出されると下記になります。
<img src="hogehoge.jpg" alt="これは"タイトル"です。 />
これは、エスケープ処理をされていない影響でおかしな事になってます。

<mt:setVarBlock name="regex0">/["']/g</mt:setVarBlock>
<mt:setVarBlock name="regex1">*</mt:setVarBlock>
<img src="hogehoge.jpg" alt="<$mt:entryTitle regex_replace="$regex0","$regex1"$>" />
<img src="hogehoge.jpg" alt="これは*テスト*です。" />
「"」が「*」に置き換えられる事によりエラーを回避する事ができます。


参考URL
http://www.mtcms.jp/movabletype-blog/tech/201104222143.html

0 件のコメント:

コメントを投稿

ドメインって、早い者勝ちですよ!