perl で HTML エスケープする方法。大崎さんのperlメモから。
Namazu でインデキシングする HTML の場合、< > & ” “ もエスケープすること。
Namazu が奇妙な変換をするため。http://www.namazu.org/ml/namazu-users-ja/msg02528.html 参照。
Namazu でインデキシングする HTML の場合、< > & ” “ もエスケープすること。
Namazu が奇妙な変換をするため。http://www.namazu.org/ml/namazu-users-ja/msg02528.html 参照。
# HTML エスケープする
sub HtmlEscape {
my $content = $_[0];
my $eucpre = qr{(?<!\x8F)};
my $eucpost = qr{
(?=
(?:[\xA1-\xFE][\xA1-\xFE])* # JIS X 0208 が 0文字以上続いて
(?:[\x00-\x7F\x8E\x8F]|\z) # ASCII, SS2, SS3 または終端
)
}x;
my @escape_from = qw(& > < " ');
my @escape_to = ('&', '>', '<', '"', ''');
for (my $i = 0; $i <= $#escape_from; $i++) {
$content =~ s/$eucpre\Q$escape_from[$i]\E$eucpost/$escape_to[$i]/g;
}
return $content;
}
マッチした部分をリストコンテキストで受ける。
入れ子なしの単純な html タグに囲まれた文字列を抜き出したいときとかに便利。
入れ子なしの単純な html タグに囲まれた文字列を抜き出したいときとかに便利。
# 本文から小見出しとパラグラフを分離して返す
# 引数 : 本文
# 返り値: ハッシュ
sub SplitBody {
my $body = $_[0];
my %splitted_body;
my @header = ($body =~ m|<!-- MARKER_HEADER -->(.*?)<!-- MARKER_HEADER -->|isg);
my @paragraph = ($body =~ m|<!-- MARKER_BODY -->(.*?)<!-- MARKER_BODY -->|isg);
$splitted_body{'header'} = \@header;
$splitted_body{'paragraph'} = \@paragraph;
return %splitted_body;
}
html.pl を改造して、特定の文字列に囲まれた部分をインデックスの対象外にする。
これにより、ヘッダ部分やロゴ部分を検索の対象から外すことや、
要約に表示したくない部分を削除することができる。
これにより、ヘッダ部分やロゴ部分を検索の対象から外すことや、
要約に表示したくない部分を削除することができる。
# Remove contents above <body>.これだけ。http://www.y-min.or.jp/~nob/FreeBSD/namazu.html を参考にした。
sub erase_above_body ($) {
my ($contref) = @_;
$$contref =~ s/^.*<body>//is;
# For ProSearch
my $EXCLUDE_TAG_START = '<!-- EXCLUDE_MKNMZ_INDEXING_START -->';
my $EXCLUDE_TAG_END = '<!-- EXCLUDE_MKNMZ_INDEXING_END -->';
$$contref =~ s/$EXCLUDE_TAG_START(.*?)$EXCLUDE_TAG_END//gs;
}
hdparm を使うと、IDE ハードディスクの設定を確認したり変更したりできる。
pro setting
/sbin/hdparm -a128 -c1 -d1 -X34 -m16 -k1 /dev/hda
/sbin/hdparm -a128 -c1 -d1 -X34 -m16 -k1 /dev/hdb
UDMA33 に対応していそうなものだが、現在の 環境では
使用不可なので、-X34 setting xfermode to 34 (multiword DMA mode2) とした。
dmesg を見ると、以下のようなエラーがものすごい勢いで記録されていく。
カーネルまたはドライバが悪いのか、ハードウェアが悪いのかはわからない。
/sbin/hdparm -a128 -c1 -p4 -X34 -m32 -k1 /dev/hdb
sonic の hdb はマルチカウントが 32 という特徴がある。
-u1 は クラッシュの原因になっているようなので使わない。
-f -t -T によるベンチマークは無事完了したが、
いざmknmz しながら、samba で書き込みしたら IDE がパニック。
詳しいエラーメッセージは覚えてないが。
-u1 が犯人、という根拠は特にないが、「同時割り込みを許可する」というところに不穏な空気を感じる。
$ /sbin/hdparm -a128 -c1 -d1 -m16 -f -t -T /dev/hdaベンチマークは、 -f -t -T オプションを付けて行う。
pro setting
/sbin/hdparm -a128 -c1 -d1 -X34 -m16 -k1 /dev/hda
/sbin/hdparm -a128 -c1 -d1 -X34 -m16 -k1 /dev/hdb
UDMA33 に対応していそうなものだが、現在の 環境では
使用不可なので、-X34 setting xfermode to 34 (multiword DMA mode2) とした。
dmesg を見ると、以下のようなエラーがものすごい勢いで記録されていく。
カーネルまたはドライバが悪いのか、ハードウェアが悪いのかはわからない。
hdb: timeout waiting for DMA
ide_dmaproc: chipset supported ide_dma_timeout func only: 14
hdb: irq timeout: status=0x59 { DriveReady SeekComplete DataRequest Error }
hdb: irq timeout: error=0x84 { DriveStatusError BadCRC }
ide0: reset: success
- sonic のセッティング
/sbin/hdparm -a128 -c1 -p4 -X34 -m16 -k1 /dev/hda/sbin/hdparm -a128 -c1 -p4 -X34 -m32 -k1 /dev/hdb
sonic の hdb はマルチカウントが 32 という特徴がある。
-u1 は クラッシュの原因になっているようなので使わない。
-f -t -T によるベンチマークは無事完了したが、
いざmknmz しながら、samba で書き込みしたら IDE がパニック。
詳しいエラーメッセージは覚えてないが。
-u1 が犯人、という根拠は特にないが、「同時割り込みを許可する」というところに不穏な空気を感じる。
- 起動時に自動設定
/etc/rc.d/rc.local に書いておく。* IE で JavaScript の有効 / 無効 を設定する
この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [IE] [JavaScript]
ツール(T) -> インターネットオプション(O) -> 「セキュリティ」タブ ->
「レベルのカスタマイズ」ボタン -> 「スクリプト」 の
「アクティブスクリプト」で「有効にする」を選択。
「レベルのカスタマイズ」ボタン -> 「スクリプト」 の
「アクティブスクリプト」で「有効にする」を選択。