MTの記事投稿時にURLを自動リンクさせる(その2)

| コメント(0) | トラックバック(0)
前回紹介したMTプラグインの一つ「hirosikitextfilter」で、記事内容にURLが含まれていたときに自動リンク(URL補完)させる件だが、デフォルトのままだと、URLのGETクエリに含まれる
「?aaa=111&bbb=222&ccc=333」とかの部分が、
   ↓
「?aaa=111&bbb=222&ccc=333」(実際は全て半角)

みたいな感じに変換されてしまう。

ただHTMLに表示するだけならいいが、URLをクリックしてCGIとかにクエリを渡したとき、nameとvalueの関係が、

aaa ---> 111
amp ---> 未定義
bbb ---> 222
amp ---> 未定義
ccc ---> 333

(※「;」(セミコロン)がデリミタ扱いになる理由は分からないが、掲示板などで調べたら、結果が上記のようになることがわかった。)


になってしまい、無駄なパラメータ(ampの部分)が発生してしまうので、
「hirosikitextfilter.pl」78行目の

$u =~ s/\&/\&/g;

の部分を削除。

試しに記載↓
http://hogehoge.jp/get.php?a=111&b=222
↑「&」が「&」にならずそのままなら成功。



それと、cronからのメールで、

Odd number of elements in hash assignment at /home/****/public_html/mt/plugins/hirosikitextfilter.pl line 12.
Odd number of elements in hash assignment at /home/****/public_html/mt/plugins/hirosikitextfilter.pl line 16.

(※直訳
hirosikitextfilter.plの12行目と16行目でハッシュを定義するとき、KEYとVALUEの合計が奇数(対になってない)ですよ みたいな感じ。)

と毎回怒られるので、よくみたら13〜15行目が

%inTags =
split( ',',
'a,,pre,,script,,object,,embed,'
);

となっているので、最後のembedのあとにカンマをもう一つ追加して修正。

17〜20行目も同様に修正。

したが、まだ同じエラー(というか警告)が出る。

仕方がないので、

%inTags =
split( ',',
"'a',','pre','','script','','object','','embed',''"
);

みたいに全部空文字列で定義してやったらOKになった。

てゆうか、これならsplitしないで普通に定義したほうがスマートのような・・・

トラックバック(0)

トラックバックURL: http://www.igreks.jp/blog/mt-tb.cgi/154

コメントする