Home

media study

続:[MT]制御文字混入によるfeedエラー

  • Posted by: ogatama
  • 2012年2月 2日 16:08

以前の記事で問題だった制御文字混入の解決編です。


XMLのdescriptionタグの中に制御文字が入ってしまうということなので、単純にregex_replaceしてみました。
↓こんな感じ。

<$MTEntryBody encode_xml="1" regex_replace="/[\x00-\x1f\x7f]/g",""$>

置換対象は下記。

00 NUL ^@ NULl(ヌル)
01 SOH ^A Start Of Heading(ヘッダ開始)
02 STX ^B Start of TeXt(テキスト開始)
03 ETX ^C End of TeXt(テキスト終了)
04 EOT ^D End Of Transmission(転送終了)
05 ENQ ^E ENQuiry(問合せ)
06 ACK ^F ACKnowledge(肯定応答)
07 BEL ^G BELl(ベル)
08 BS ^H Back Space(後退)
09 HT ^I Horizontal Tabulation(水平タブ)
0A LF ^J Line Feed(改行)
0B VT ^K Vertical Tabulation(垂直タブ)
0C FF ^L Form Feed(改ページ)
0D CR ^M Carriage Return(復帰)
0E SO ^N Shift Out(シフトアウト)
0F SI ^O Shift In(シフトイン)
10 DLE ^P Data Link Escape(伝送制御拡張)
11 DC1 ^Q Device Control 1(装置制御1)
12 DC2 ^R Device Control 2(装置制御2)
13 DC3 ^S Device Control 3(装置制御3)
14 DC4 ^T Device Control 4(装置制御4)
15 NAK ^U Negative AcKnowledge(否定応答)
16 SYN ^V SYNchronous idle(同期信号)
17 ETB ^W End of Transmission Block(転送ブロック終了)
18 CAN ^X CANcel(取消)
19 EM ^Y End of Medium(媒体終端)
1A SUB ^Z SUBstitute(置換)
1B ESC ^[ ESCape(拡張)
1C FS ^\ File Separator(ファイル分離)
1D GS ^] Group Separator(グループ分離)
1E RS ^^ Record Separator(レコード分離)
1F US ^_ Unit Separator(ユニット分離)
7F DEL ^? DELete(削除)

改行コードまで置換しちゃうのはどうかな~とか思ったりしたけどXMLだしまぁいっかということで。

[MT]RSS内のaタグにtarget="_blank"を挿入する

  • Posted by: ogatama
  • 2012年2月 1日 15:49
皆さん大好き正規表現です。
↓こんな感じ。

<$MTEntryBody sanitize="p,br/,br,a href,h2" regex_replace='/(<a href="[^"]*)(">)/g','$1" target="_blank">'$>

これでRSSで記事配信したとき、外部サイトに記事が表示されても記事内のタグには強制的にtarget="_blank"がつきます。

test

  • Posted by: ogatama
  • 2012年1月31日 11:06

Pintarestの類似サービスシリーズ

  • Posted by: ogatama
  • 2012年1月23日 15:52

こいつら清々しいほど似てやがる...

Pintarest
pintarest.png

Pinspire
pinspire.png

LikedBy
likedby.png

[MT]制御文字混入によるfeedエラー

  • Posted by: ogatama
  • 2012年1月17日 12:57
MTから外部サイトにフィードを提供している際、フィードを利用している方から問い合わせがあった。
どうやらフィードの読み込み時にエラーが出るらしい。
chromeで当該XMLのURLを叩いてみた。

(not proper UTF-8 うんちゃらかんちゃらなエラー表示)
0x13 0x0A 0x0A 0x5D

この0x13というのが制御文字コードに引っかかっているらしい。
(どこで入ったの...)
場所の特定は文字コードを文字に戻すと分かった。

0x13 ... 制御文字(見えない)
0x0A ... 改行
0x0A ... 改行
0x5D ... ]

ハハーンCDATAセクションのケツの方だね、ということでphpMyAdminで該当記事のレコードを確認。
が、しかしゴミらしきものは見えない。
おっかしーなー、と思いつつ本文末尾にテキストカーソルをおいて←キーをポチポチやっていると何かおかしい。
「見えないけど何かがある...」
そう、半角スペースでもなんでもなく、←カーソル一回分引っかかる箇所があった。
これを削除してテンプレート再構築したら解決しました。

制御文字が入った原因は外部テキストエディタからブログ原稿をコピペしたときのエンコードの違いからくるゴミ文字コードじゃねーかなー、ということで現在担当エディターに確認中。

画像アップロード先のデフォルトを変更

  • Posted by: ogatama
  • 2012年1月16日 11:57
下記ファイルをいじる。

__mt__/tmpl/cms/include/asset_upload.tmpl

1行目に
<mt:setvar name="extra_path" value="ディレクトリ名">
を追記。

mt.cgiだけにベーシック認証

  • Posted by: ogatama
  • 2011年12月25日 15:42
サブドメインでアプリケーションディレクトリを切りわけた時、アプリケーションディレクトリ全体にベーシック認証掛けちゃうと公開サイト用のバーチャルホストにhttpアクセスしたときに認証が出てきちゃう。まぁ当然か。
回避方法は下記を参照しました。
http://hyper-text.org/archives/2008/07/mt_basic_authentication.shtml

公開キュー経由

  • Posted by: ogatama
  • 2011年12月23日 21:17
サブドメイン以下にディレクトリ切ってぶら下がってるブログが更新されたときに
サブドメイン直下のインデックスを一緒に再構築したいときは「公開キュー経由」を使うのかな?
デフォルトのスタティックのままだとブログを再構築したときにサブドメイン直下のインデックスの
ブログアーカイブ一覧の表示が更新されないっぽい。そういう仕組みって理解で合ってるのかしら。

MTのアプリケーションDirをサブドメインで分けた時の挙動

  • Posted by: ogatama
  • 2011年12月23日 21:12
にゃるへそ。MTのインデックスの概念をなんとなく理解。
最初にできるのはウェブページ扱いなのね。ウェブページ一覧には出ないけど。
テンプレのインデックスを直編集する感じね。なるなる。

test

  • Posted by: ogatama
  • 2011年12月23日 20:37
test

Index of all entries

Home

Search
Feeds

Return to page top