質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Q&A

解決済

3回答

2491閲覧

perlで変数を付けたHTMLタグをファイルで保存しようとすると上手く行きません。

trm

総合スコア117

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

0グッド

0クリップ

投稿2018/02/05 22:16

編集2018/02/05 22:30

#perlで変数を付けたHTMLタグをファイルを保存しようとすると上手く行きません。どうかよろしくお願いします。ダブルクォーテンションでくくった文字列の"にはエスケープシーケンス扱いして\をつけています。どうぞよろしくお願いいたします。

my $file ="syouhin/$syouhinmei".".html"; # $$ はプロセスID
open(OUT,">$file");

$msg = "$sql,$name,$pass,$shimei,$mail,$syouhinmei,$nedan,$q1,$file1,$file2,$file3,$mojijouhou\n";

$msg15="<!--$msg--!><html>

<head> <title>$syouhinmei</title> <meta http-equiv=\"content-type\" content=\"text/html; charset=Shift_JIS\"> </head> <body bgcolor=\"#000066\" text=\"#000000\" link=\"#0000ee\" alink=\"#0000ee\" vlink=\"#551a8b\"> <a href=\"1/$file2\" &gt;</a=\"\"><img src=\"btn056_09 - 3.gif\" alt=\"\"> <br> <img src=\"1/$file1\" alt=""> <font color=\"#ff0000\"><br> </font><big><big><big><big><big><font color=\"#ff0000\">$q1,$sql</font></big></big></big></big></big><br> <big><big><big><big><big><font color=\"#ff0000\">【題名】$syouhinmei<br> 【価格】$nedan円(税込)<br> 【商品情報</font></big></big></big></big></big><big><big><big><big><big><font color=\"#ff0000\">】</font></big></big><font color=\"#ff0000\">$mojijouhou</font></big></big></big><br> </a><a href=\"../a1.cgi\"><img src=\"../index2.png\" alt=\"\"> </a><br> <big><big><big><font color=\"#ff0000\">カートに入れる↑</font></big></big></big><br> <br> <br> <br> </body> </html>";

$eee = "shouhin/$syouhinmei".".html";
open(OUT,">> $eee") || die("ファイルを追記モードで開けませんでした。");
print OUT $msg15;
close(OUT);

$eee1 = "kokyakusyouhinjouhou/$nowID".".txt";
open(OUT,"> $eee1") || die("ファイルを追記モードで開けませんでした。");
$msg = "$sql,$name,$pass,$shimei,$mail,$syouhinmei,$nedan,$q1,$file1,$file2,$file3,$mojijouhou\n";
print OUT $msg;
close(OUT);

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/02/06 00:11

プログラムコード(およびエラーメッセージ)は```で囲ってください。(わからなければ質問編集画面でコード部分を選択し<code>ボタンを押してください)正しく反映されているかどうかは質問編集画面のプレビューを見ながら編集していってください。
trm

2018/02/06 00:57

わかりました。
m.ts10806

2018/02/06 05:16

対応されないまま質問を完了されるのはいかがなものかと。そのうちどんなに構って欲しくても誰も相手にしてくれなくなりますよ。ご注意を。
guest

回答3

0

自己解決

if文の書き方が間違っていました。どうもおさわがせいたしました!でも文字化けの問題は依然治りません。誰か何とかして下さい。

投稿2018/02/06 04:23

trm

総合スコア117

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KojiDoi

2018/02/06 04:31

誰か何とかしてくださいとは何という言い草。質問は断片的、回答にはろくに音さたなしで、どうせよと? そろそろあなたのことは目的外利用者として運営に連絡すべきではないかと思い始めているところです。
trm

2018/02/06 08:12

じゃあ勝手にしろよ!
guest

0

ディレクトリshouhinというのが存在しないんじゃないですか?
それから、<!-- --!>とか、変な記述がいろいろ残っているのでチェックし直したほうがいいでしょう。

もう一つの大きい問題として、日本語を扱うには内部コードと出力先コードの切り替えをしないといけません。この辺のことは前の質問で説明しましたのでここでは書きません。質問して得た情報はちゃんと活かしてください。 その通りにやらないと他のミスを修正してもおそらく文字化けするでしょう。

こういう長い文字列を書くときはヒアドキュメントにするのがいいでしょう。いちいち"をエスケープせずによくなります。

perl

1$msg = <<"KOKOMADE"; 2<!--$msg--!><html> 3<head> 4<title>$syouhinmei</title> 5 6中略 7 8<big><big><big><font color="#ff0000">カートに入れる↑</font></big></big></big><br> 9<br> 10<br> 11<br> 12</body> 13</html> 14KOKOMADE

投稿2018/02/06 03:05

KojiDoi

総合スコア13671

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

trm

2018/02/06 03:20

ありがとうございました!勉強になりました。
KojiDoi

2018/02/06 03:24

そういう形だけのお礼はいいですから、ちゃんと成果を見せてください。過去の質問はいつになったら閉じるつもりですか?
trm

2018/02/06 04:21

use utf8; binmode STDOUT, ':utf8'; としてもやはり、画面が文字化けします。ファイルも文字化けします。
guest

0

17行目の alt="" にエスケープがないのでエラーになります。
perl -c で構文チェックできるので確認してみてください。

提示のプログラムが全てなのかどうかわかりませんが、書き出しファイル名にあたる$syouhinmei と $nowID の定義がないので、書き出しファイル名がそれぞれ .html と .txt になっています。(出力はされていました)

投稿2018/02/05 23:53

SHONDA

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

trm

2018/02/06 01:00

17行目のalt=""はご指摘前に修正しましたが上手く行きません。でもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問