• 締切済み

CGIでテキストファイルの中身を参照する

今、既存のCGIを利用してメールの送信プログラムに改造しています。 そこで質問なのですが、変数の中にテキストファイルの中身のメールアドレスを代入する事は可能でしょうか?  テキストファイルの中身には会社の同僚のメールアドレスが入ってます。通常なら○○.cgi のファイルの中にあるメールアドレスを直接編集すればいいのですが、10人ごとのグループに分かれてて、この10人のアドレスをいちいち書くと面倒なのでそのグループごとにテキストファイルを作りその中にメールアドレスを書き入れれば、簡単に編集などが出来るかと思ったのですが、何分にも素人なものでわかりません。 変数の中に代入するメールアドレスをテキストファイルの中に格納しておいて、それを代入する方法があればご教授ください。 よろしくお願い致します。

  • CGI
  • 回答数1
  • ありがとう数2

みんなの回答

  • namiri_e
  • ベストアンサー率37% (37/98)
回答No.1

外部データファイルの扱い方はご存知ですか? open(READ,"data.txt"); @lists = <READ>; close (READ); ってすれば@listsの中にテキストファイル(ここではdata.txt)の内容が一行ごとに$lists[0],$lists[1]…として格納されていきます。 つまり、テキストファイルの中身を aaa@mail.com bbb@abc.net ccc@hoge.com : : としておけば変数にメアドを代入することができます。

t_coron
質問者

お礼

お返事が大変遅くなりま申し訳ございませんでした。 namiri_e 様のようにやってみたところ何とか、理想の形になりました。本当に本当にありがとうございました。

関連するQ&A

  • ファイルの中身の参照

    テキストファイル(DB.txt)の中身を参照する事が出来ません。 テキストファイルの中身にAと書いてあったら、Aドライブにバックアップするようにするのが目的です。 X(変数)ドライブにバックアップするトコまではできてます。 Dim X As String X = ここの部分がわからない。 よろしくお願いします。

  • ダイナミックテキストに表示

    FLASHで外部テキストから取得した変数をダイナミックテキストに表示したいのですが、やり方がわかりません。 ダイナミックテキストの変数名がtestだとして、テキストファイルの中に test=テキスト と記述すれば問題ないのですが、 テキストファイルに hensu=テキスト と記述してhensuの中身をtestに格納するという事はできないのでしょうか?

    • ベストアンサー
    • Flash
  • コマンドプロンプトで変数にテキストファイル

    コマンドプロンプトで変数にテキストファイルの中身を代入することできますか? 例えば、テキストファイルに検索キーのみが記入してあったとして、それをBATファイルで読み込んで各ドライブから検索するとか。

  • perlのcgiで、変数の中身を表示させたい

    cgiで変数の中身を表示させたい perlのcgiで変数の中身を表示させたいのですが、うまくいきません ▽環境   レンタルサーバ ▽やりたいこと   通常のブラウザ画面に、変数の中身を表示させたい ▽現状   use Data::Dumper;   print Dumper($hoge));もしくは、warn Dumper $hoge;   とすると、下記エラーとなります Script Error The script did not produce proper HTTP headers. Please see the error log to see the detail of the errors. Depending on the server configuration, you can also run thisscript under CGIWrap debugging. Usually, either rename or linkthe script temporarily to a file which ends with .cgidextension, or add a AddHandler cgi-script-debug .cgiline to your .htaccess file. 指示に従い、.htaccessへ、AddHandler cgi-script-debug .cgiを追記すると、ズラズラ出てきたと何か出てきた中の一行に、変数の中身が表示されます ■質問事項   ▼変数の中身を確認する際、いちいち.htaccessへ追記するのが面倒なのですが、どうやって回避するのでしょうか?   ▼なぜ、変数の中身を確認しようとしただけで、Script Errorとなるのでしょうか?   ・書き方を間違えている?   ・書く場所を間違えている?   ・レンタルサーバの仕様?   ・perlのcgiだから? イメージしてるのは、PHPのvar_dumpなのですが…

    • ベストアンサー
    • Perl
  • テキストファイルの内容を変数に格納したい

    $(function() { $item = ""; $.ajax({ url: 'data/data.txt', success: function($data) { $item = $data; } }); alert($item); }); 上記のように外部のテキストファイルを読み込んで、その中身の文字列をajaxの外で宣言している変数に格納したいのですが、何も格納できていません。 テキストファイルのパスが間違っているということや、中身が何もないということはありません。 ajaxのsuccess内にalertを置いた場合は値が正しく表示されるのですが、ajaxの外ではやっぱだめです。 ajaxではなくloadでやろうとも思ったのですが、loadの場合はHTML上のタグにしか出力できないので、今回の目的には合いません。 なんとかして、変数にテキストファイルの中身を渡せないのでしょうか。

  • CGI→CGI変数の引き継ぎはどうするのですか?

    初歩的な質問ですがよろしくお願いします。 画面から入力した変数は「GET」などでCGIに値を引き継ぎますが、CGIから別のCGIを起動して最初のCGIでファイルから読み込んだ値や代入された変数を次のCGIに引き継ぐにはどのようにすればよろしいのでしょうか?よろしくお願いします。

    • ベストアンサー
    • CGI
  • ダイナミックテキストに配列の中身を表示させたい

    初めて質問させていただきます。 FlashMX2004proでダイナミックテキスト(以下DT)を10個用意して、それぞれに配列の中身(文字が入ってます)を表示させたいのです。 1個目のDTにはmojiArray[0]を 2個目のDTにはmojiArray[1]を というふうに10個表示させたいのです。 DTのプロパティの変数のところにちゃんと変数名を入れてACで配列変数に文字を代入してるのですが表示されません。 配列の中身をDTに表示させることは可能なのでしょうか?お返事よろしくお願いします。

    • ベストアンサー
    • Flash
  • メールアドレスをテキストファイルから読み取れないのですが

    既存のフリーウエアのCGIを改造して、フォームから送信されたメールアドレスを元に、それに対応する社員番号をテキストファイルから読み込んで、入力されたアドレス宛にメールするCGIを作ろうとしてます。 しかし、テキストファイルに確かに存在するメールアドレスをCGIが見つけてくれていないみたいなので、CGIがデータファイルをどう読み込んでいるのか確認するために以下のような別の簡単なCGIを動かしてみました。 (私はPerlの知識はかなり浅いので、この簡単なテスト用CGIはこのサイトで見つけたソースを元に作らせて頂いたものです) #!/usr/local/bin/perl print "Content-Type: text/plain\n\n"; my $file = 'data/member.usr'; # 読み込むファイル名 open(my $fd, $file); # ファイルを開く foreach (<$fd>) { # 以下1行ずつ読み込み my @cols = split("\t", $_); # タブで分割して配列へ $aidhi = $cols[2] if $cols[0] eq "031234567"; # 1項目めが該当の電話番号ならなら$aidhiはこの行の3項目めの内容 } close($fd); # ファイルを閉じる print $aidhi, "\n"; そして、データファイル「member.usr」の内容は次のようになっています。 0454329876 DG2GOUd75C2V2 nantoka@jcom.ne.jp 1187785757 1187785757 1187785757 1187785757 031234567 oHMTws.ycIreE namae@home.ne.jp 1187785757 1187785757 1187785757 1187785757 09012340001 aQH3oO85YlTdU denwa@docomo.ne.jp 1187785757 1187785757 1187785757 1187785757 こうして031234567に対応するメールアドレスを表示させようとすると、検索結果は「namae@home.ne.jp」と表示されずに「00」と表示されてしまいます。 でも、ここでCGIで取り出す内容を $aidhi = $cols[1] if $cols[0] eq "031234567"; と変えると、ちゃんと2項目めの「oHMTws.ycIreE」を表示してきます。 @マークやドットがいけないのでしょうか? $aidhi の内容に正しくメールアドレスを読み込ませるにはどうしたら良いのでしょう? だいたい、なぜ読み込んだ結果が「00」とゼロ2つになってしまうのでしょう? ちなみに、このデータファイルは別の既存CGI(スクリプトゲイトというフリーウエアです)が吐き出すデータベースファイルで、このファイルは既に色々な別のCGIに参照されているのでこのデータファイルのフォーマットを変えるのは極力避けなければなりません。 データファイルがタブ区切りになっているのがいけないのかなと思い、区切り方をカンマにしてCSVで読み込ませてみましたが、結果は変わりませんでした。 解決策のお心当たりのある方はいらっしゃらないでしょうか? どうかよろしくお願い致します。

    • ベストアンサー
    • Perl
  • テキストファイルを開かずに中身をコピーする方法

    秀丸で1000ファイルの文章ファイルがあります。 このテキストファイルをいちいち開くことなく、中身をすべてコピーしブラウザでとあるフォームにコピペしたいのですが、可能でしょうか? 今はいちいち全部開いてすべて選択→コピー&ペーストしているので、時間ばかりかかってしまいます。 なにかいい方法やフリーソフトがあったら教えてください。 よろしくお願いいたします。

  • テキストファイルを配列に

    始めまして C言語にてテキストファイルの中身を読み込み一次元配列に代入するというシステムを作ろうとしているのですがわかりません テキストファイルの中身は 12 5312 72 7 444 53 7884 といった具合で100数行あり一行ごとに配列に入れたいです 勉強を始めたばっかりで本を見ても書いていなく困っています わかるかたご指導願えますか? よろしくお願いいたします

専門家に質問してみよう