68user's page 掲示板

Prev< No. 1563〜1568> Next  [最新発言に戻る] [過去ログ一覧]
No. 1563 # yoshi [E-mail] 2001/01/14 (日) 16:11:26
お世話様です。
perl に ついてお伺いしたいのですが何方かご存知でしたら教えてください。
文字置換で下記のような物を実行するとエラー(ドキュメントにデータが無い)
とエラーが出て動作しません。どうも”ー”のキャラクターが原因のようです。
kk,mmの変数でtest変数文章を部分変換したいのですがココでつまずいています。

#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
$test = "ホームページの更新";
$kk = "ホームページ";
$mm = "掲示板";
$test =~ s/$kk/$mm/;
print $test;
-----------------------eof-------------------------

No. 1564 # 68user 2001/01/14 (日) 17:27:13
>>1562 rosegarden
最近の stable では、thread まわりのバグが fix されて、
mozilla5 が動くようになったそうですが、cvsup するのは
やめときます (笑)

>>1560 debra
>UX:crontab:警告:コマンドは /usr/bin/sh で実行されます.
「警告」っつーのが謎ですね。動作には影響ない?

>>1563 yoshi
CGI 経由でデバッグするのはやめましょう。まずはコマンドライン
からです。さすれば
    /z[y[W/: unmatched [] in regexp at a line 6.

    /ホームページ/: unmatched [] in regexp at a line 6.
というエラーが表示されることが確認できるでしょう。

というわけで「ホームページ」という文字列をダンプすると
    203 z 201 [ 203 200 203 y 201 [ 203
となります。「ー」の2バイト目が `[' と同じコードのため、
[] が正規表現として正しくない (']' で閉じていない) ということです。
対処法としては
    1. SJIS を使わない。スクリプトの文字コードを EUC にする。
    2. jperl を使う http://www.jp.FreeBSD.ORG/QandA/HTML/1218.html
です。他にも \Q〜\E で囲むだとか、quotemeta を使うなどの手は
ありますが、所詮小細工のレベルです。根本的には上のいずれかを
選びましょう。

No. 1565 # けんす 2001/01/15 (月) 00:55:54
ぽよぞーです。
さっそくやってみたのですが、、

http://www.kensu.com/zzztest/

できないっす、、なぜだ、、
HEADER.html、README.html置いてあるのに、
一覧には表示されてないし、、。(直指定で見れまぷ)
原因おわかりでしたらご教授くださいませ・・・

No. 1566 # けんす 2001/01/15 (月) 01:02:44
あ、すんません、追加で。
もしできたとして、
全部のディレクトリにこれ反映させるにはどうしたらいいですか??
mod_rewrite入ってるみたいなのでそれでできますか??
よろしくどうもー。

No. 1567 # yoshi 2001/01/15 (月) 01:18:41
>>1564 68user
スクリプトの文字コードを EUCにします。ありがとうございました

No. 1568 # けんす 2001/01/15 (月) 02:42:26
いろいろやってたら解決できました!

HeaderName /lib/HEADER.html
ReadmeName /lib/README.html

<FilesMatch "^(HEADER|README)\.html$">
        ForceType text/html
</FilesMatch>

http://www.kensu.com/.htaccess

強制的にtext/htmlにしたらうまくいきました。

全部のディレクトリに反映させるのも、上のとおり
ディレクトリも含めて指定したらすんなりできました。

img/,doc/など掘ってありますので見てみてください。

http://www.kensu.com/img/

何度も投稿して板汚してすんません、、>68userさん
ではでは

Prev< No. 1563〜1568> Next  [最新発言に戻る] [過去ログ一覧]