プロが教える店舗&オフィスのセキュリティ対策術

& → &
; → &#x3b;

の2つの実体参照エスケープを

$value =~ s/&/&/g;
$value =~ s/;/&#x3b;/g;

で行うと、「&」の変換で出来上がった最後の「;」が次の「;」の変換の対象になって失敗してしまいます。

2つのパターンを同時に変換する方法をご存知でしたら、是非教えてください。
宜しくお願いします。

A 回答 (5件)

#1 でちょっと間違えました. やりたいことはわかるかと思いますが.

この回答への補足

ご回答ありがとうございます。

既に気づいているとは思いますが、質問文にミスがあったので訂正します。
(修正も削除もできないようなので、回答されるまで、何もできないんですよね…。)

& → &
; → &#x3b;

のエスケープを

$value =~ s/&/&/g;
$value =~ s/;/&#x3b;/g;

でやると失敗。

という事です。

(また、ミスってなければ良いのですが…。)

補足日時:2004/09/16 00:54
    • good
    • 0
この回答へのお礼

修正が上手くいったようなのでお礼をさせてもらいます。

なるほど、ハッシュを使って場合分けすれば良いんですね。
勉強になりました。

お礼日時:2004/09/16 01:06

↓すみません、操作ミスと焦ってしまい変なことになって


しまいました。
下の回答は無視してください。
    • good
    • 0

少し分かりませんが、よくある実体参照のエスケープは



$value =~ s/&/&/g;

ですね。
    • good
    • 0

少し分かりませんが、よくある実体参照のエスケープは



$value =~ s/&/&/g;

ですね。
    • good
    • 0

%escape = ( '&' => '&&#x26', ';' => '&&#x3b' );



$value =~ s/([&;])/$escape{$1}/eg;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!