前回紹介した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しないで普通に定義したほうがスマートのような・・・
「?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しないで普通に定義したほうがスマートのような・・・

コメントする