アプリ版:「スタンプのみでお礼する」機能のリリースについて

多くの、顔文字をCGIで表示するプログラムを作っているのですが、エスケープシーケンスだらけになって大変です。
$など出てきたときには、print<<"EOM" EOM でくくってもおかしな動作をしたり、¥¥などと出てきたときもおかしな動作になって困っています。
URLエンコードのように、何か、こう、サクット簡単に、文字を全部エスケープシーケンスに直してくれるbサイトかアプリはないでしょうかね?

A 回答 (5件)

print<<"EOM";


データ
EOM

BLUEPIXYさんの提案されている
print<<'EOM';
データ
EOM
では動作が違いますので問題はでないはずです。
前者ではデータ中に変数($~)やメタ文字(\~)などがあれば展開されますが
後者ではそれを行いません。

唯一の例外は
EOM
という終了を示す行と全く同じ行がデータ中にある場合だけです。
それがデータ中に存在するようなら終了を示す文字列をあり得ないような文字列に変えてやれば大丈夫だと思います。

print<<'MuimiNiNagakuShiteDataNoNakaniArawarenaiYounisuru';
データ
MuimiNiNagakuShiteDataNoNakaniArawarenaiYounisuru
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
"と'では意味が違っていたんですね。知りませんでした。
わざわざ、質問内容から読み取っていただいて、ご教示いただきありがとうございました。
無事解決いたしました!!

お礼日時:2005/06/13 05:39

>もし、この顔文字の中に何かの続き文字で、print<<'EOM';という文字列が入っていた場合うまくいきません。


顔文字に、どうしてそのような文字列が入るのかはわかりませんが、
念のためテストしてみました、そのまま出力されるようです。
うまくいかない状況をもう少し補足してください。
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
'と"を同じものだと思っておりました。
せっかく、ご教示いただいたのに、すみませんでした。

お礼日時:2005/06/13 05:40

print<<'EOM';


としてみたらどうでしょう
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
残念ながら、それでは解決しません。
例えばですが、もし、この顔文字の中に何かの続き文字で、print<<'EOM';という文字列が入っていた場合うまくいきません。
今のところ、まだ原因は分かりませんが、多分、変数を勝手に生成しているようで困っています。
無理やり置換でやればできなくはないのですが、顔文字表を書き直すたびに置換作業するのはとても骨が折れます・・・

お礼日時:2005/06/12 00:31

HTMLサニタイズ用モジュールがCPANにありますので、そちらを利用してみては。



参考URL:http://www.google.co.jp/search?hl=ja&q=html+sani …
    • good
    • 0
この回答へのお礼

回答いただきありがとうございます。
残念ながら、私には高度すぎてさっぱり・・・
pmがプログラムということは分かるのですが使い方がさっぱりで・・・すみません。

お礼日時:2005/06/12 00:32

エスケープ文字「\」の意味をご存知ないようですね。



「$」や「"」や「'」など、特殊な文字が出てきたら、とにかく、前に「\」を足してみましょう。

「$$(`o')$$」⇒「\$\$(\`o\')\$\$」

もちろん「\」を「\\」にするのもお忘れなく(同様に「\\」は「\\\\」になります)

この回答への補足

回答いただきありがとうございます。
お察しの通り、Perlなどプログラムはほとんど知らないのですが、今回文字数でいうと500文字くらいありまして、その全てをひとつづつ調べてエスケース文字をつけるのはとても大変なため、簡単に、つける方法がないかと探しています。
もし、ご存知でしたら、宜しくお願い致します。

補足日時:2005/06/11 15:57
    • good
    • 0

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