• 締切済み

ランダムスクリプトの仕様を変更したい

以下ソースはランダムに画像を差し替えるスクリプトですが、これを利用して画像ではなくhtmlファイルを差し替えるようにしたいのですが可能でしょうか? #!/usr/bin/perl $n = 3*60*60; # 画像を変更する秒数 $imgdir="./image/"; if(!opendir(DIR,$imgdir)){ print "Content-type: text/html\n\n"; print "Directory open error.\n"; exit(1);} $k = @file = grep /\.(?:jpg|gif)$/, readdir(DIR); closedir(DIR); $a = int(time / $n) % $k; open(IMAGE, "$imgdir$file[$a]"); binmode(IMAGE); $size=read(IMAGE,$image, -s IMAGE); close(IMAGE); if($file[$a] =~ /\.jpg$/){print "Content-type: image/jpeg\n\n";} else {print "Content-type: image/gif\n\n";} binmode(STDOUT); print $image; exit; ど素人なもので試行錯誤しております(汗)。どうぞよろしくお願い致します。m(_)m

  • Perl
  • 回答数1
  • ありがとう数0

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

Content-Typeとして“text/html”を指定して、HTMLファイルを出力する、ってのでダメですか。

tibox00
質問者

補足

ご回答どうもありがとうございます。 それは具体的には上記ソースのどの部分に挿入すればよいのでしょうか?

関連するQ&A

  • ランダムスクリプトに時間要素を取り入れたい

    次のような時間要素を下記ソースに取り入れたいのです。 ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $n = @imgs; $n = $sec%$n; つまり上記要素を下記ソースに組み込んで画像の変更間隔を秒や分などの時間単位で指定できるようにしたいのですが下記スクリプトを利用して可能でしょうか? #!/usr/local/bin/perl $imgdir="./rndimg/"; if(!opendir(DIR,$imgdir)){ print "Content-type: text/html\n\n"; print "Directory open error.\n"; exit(1);} @file=readdir(DIR); closedir(DIR); $k=0; foreach $fi (@file){ if($fi =~ /(.*)(\.jpg|\.gif)$/){++$k;}} srand();$a=int(rand($k));$j=0; for($i=0;$i<=$a;$j++){ if($file[$j] =~ /(.*)(\.jpg|\.gif)$/){++$i;}} open(IMAGE, "$imgdir$file[$j-1]"); binmode(IMAGE); $size=read(IMAGE,$image, -s IMAGE); close(IMAGE); if($f =~ /\.jpg$/){print "Content-type: image/jpeg\n\n";} else {print "Content-type: image/gif\n\n";} binmode(STDOUT); print $image; exit; 色々考えたのですがどうもよくわかりません。 ご教授のほどどうぞよろしくお願いします。

    • ベストアンサー
    • Perl
  • perlで画像表示

    htmlファイルから<img src="./aa.cgi">と書いて連続した画像を表示させたいのですが @aa =(1,2,3); foreach(@aa){ open(IMG, "./$_.gif"); binmode(IMG); binmode(STDOUT); print "Content-type: image/gif\n\n"; read(IMG, $img, 1024); print $img; close(IMG); } こう書いたらだめなのでしょうか?

    • ベストアンサー
    • Perl
  • perl初心者 「カウンタ」の2

    「とほほ」さんのgif画像連結ライブラリを使ってカウンタを作成中、行き詰ってしまいました。 下のスクリプトはあるサイトで配布されているカウンタのスクリプトの一部です。 1 while (length($count) < $fig) { $count = '0' . $count; } 2 $length = length($count); 3 @GIF=(); 4 foreach (0 .. $length-1) { 5 $n = substr($count,$_,1); 6 push(@GIF, "$imgdir/$n\.gif"); 7 } 8 9 print "Content-type: image/gif\n\n"; 10 binmode(STDOUT); 11 print &gifcat'gifcat(@GIF); * $figはカウンタ表示桁数です。 * $imgdirはカウンタ画像のディレクトリです。 このスクリプトを組み込んだらうまいことカウンタを表示することができました。 でもスクリプトの理解ができず悩んでいます。 お暇がありましたらぜひ教えてください。

  • HTMLのファイルにCGI処理結果を表示する

    まずトップページはhtmlで作ります。 そのトップページにいつも変化する所があるのでcgiで処理を施したものをhtmlに貼り付けたいと思っています。 その場合に例えば画像を出力させる場合は <IMG src="cgi-local/top.cgi"> で指定し、 #!/usr/local/bin/perl print "Content-type: image/jpeg\n\n"; open FH,"<../image.jpg"; binmode FH; binmode STDOUT; print while(<FH>); close FH; をやれば動かせますが、これを画像ではなくhtmlを表示させるためには print "Content-type: image/jpeg\n\n"; を print "Content-type: text/html\n\n"; に変更する事により可能だと思いやってみたのですが、うまく出力できませんでした。 cgi処理をうまくhtmlに貼り付ける方法があるのでしょうか。どうか教えて頂けないでしょうか?お願します。(涙)

    • ベストアンサー
    • CGI
  • 画像サイズの指定方法

    $img = 'image.png'; open(IMG,"$img"); $byte = -s $img; print "Content-type: image/gif\n"; print "Content-length: $byte\n\n"; print <IMG>; close(IMG); exit; 上記のように画像を表示させているのですが、縦横サイズは どのように調整すればよろしいのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • cgiで表示するhtmlページ内でバイナリ画像を出力したい

    cgiで表示するhtmlページ内でバイナリ画像を出力したい 「CGI 画像出力」でググったページで下記のコードがありました。 下記コードは、 Content-typeをimage/gif等にして バイナリを print すれば表示される という書き方になっていると思いますが、 content-typeがtext/html のページ内でバイナリをprintした場合 バイナリが文字列としてグシャァァァと表示されてしまいます。 ------- $view = 'aaa.jpg'; print "Content-type: image/jpeg\n\n"; #コンテンツタイプを指定する open IMGG,"$view"; #ファイルハンドル IMGGに画像ファイルを読み込む binmode (IMGG); #画像なのでバイナリモードに設定する print <IMGG>; #ファイルハンドルを画面に書き出す close (IMGG); #ファイルハンドルを閉じる exit; ------- content-typeがtext/htmlの状態でバイナリの画像を表示するには どうすればよいのでしょうか? cgiを2つ用意して、上記のコードを img src=~~.cgi という形で 呼び出すしかないのでしょうか?

    • ベストアンサー
    • Perl
  • 普通の html に cgi を使って画像を・・

    ソースお手本表を見ながら質問タイトルのようなことをやりたいと思いました。 結果はHTMLを実行すると通信が1分から3分ぐらい通信を行い、最後には画像を表示しないようなります。 どこがおかしいのかおしえていただけないでしょうか? どうかお願いします。 ------------------------------------------------ #!/usr/local/bin/perl #use DBI; print "Content-type: image/jpeg\n\n"; open FH,"<image.jpg"; binmode FH; binmode STDOUT; print while(FH); close FH; ------------------------------------------------

    • 締切済み
    • CGI
  • 画像が表示できません。

    print "Content-type: image/gif\n\n"; open(IMG,"./1.gif"); $img =(IMG); close(IMG); print $img; 画像ファイル "http://0.0.0.0/a.cgi" は壊れているため、表示できませんでした。 となり表示ができません。

    • ベストアンサー
    • Perl
  • フォルダの画像一覧

    下記の画像一覧のcgiを下位フォルダをリンク表示して下位フォルダにも進んでいけるようにしたいのですが、どのようにしたらよいでしょうか。下記も教えていただいたものを利用している素人です。よろしくお願いいたします。 $width_height = 'WIDTH=40 HEIGHT=55'; $dir = './'; #################### print "Content-type: text/html;CHARSET=x-sjis\n\n"; print "$dir の jpg一覧<P>\n"; print "<TABLE BORDER>\n"; print "<TR><TH>イメージ<TH>ファイル名<TH>サイズ(k)\n"; opendir(DIR, "$dir"); while ($_ = readdir(DIR)) { if (substr($_,-4,4) eq "\.jpg") { # jpgだけ出力 ($size) = (stat("$dir/$_"))[7]; # ファイルサイズ所得 print "<TR>"; print "<TD><A HREF=\"$dir/$_\" TARGET=\"jpg\"><IMG SRC=\"$dir/$_\" $width_height></A>"; # 画像(リンクあり) print "<TD><A HREF=\"$dir/$_\" TARGET=\"jpg\">$_</A>"; # ファイル名(リンクあり) print "<TD ALIGN=RIGHT>$size\n"; # サイズ } } closedir(DIR); print "</TABLE>\n"; exit:

    • ベストアンサー
    • Perl
  • 下記の様に、単一の画像ファイル「a.jpg」を呼び出して、

    下記の様に、単一の画像ファイル「a.jpg」を呼び出して、 HTMLのBODY内に表示するCGIが在るのですが、 これを、特定のファイルに入っている複数の画像を、 HTML側で指定して呼び出し、表示させる事は可能でしょうか。 また、その際に、大きさの不均一な画像を指定した 縦横サイズ以内に、元の縦横比率を保ったまま表示させる事は可能でしょうか。 その方法などご教授頂ければ幸いです。 宜しく、お願いします。 #!/usr/bin/perl $view = 'a.jpg'; print "Content-type: image/jpeg\n\n"; open IMGG,"$view"; binmode (IMGG); print <IMGG>; close (IMGG); exit; <body> <IMG src="print.cgi" border="0"> </body>

    • ベストアンサー
    • CGI

専門家に質問してみよう