• 締切済み

変数名で付けた画像の表示方法

初心者ですよろしくお願いします 画像をforで回し表示いたいのですが以下3方法試しましたがいずれもうまく表示されません  Perlは文字列と数値が私にとってあいまいなので----と言うかそれ以前の問題ですね HTMLに変数名を入れても無理ですね今気がつきました cgiで画像を表示するのはどうしたらよろしいでしょうか?ご指導お願いします $kaku =".gif"; @bb = ( "0.gif","1.gif","2.gif","3.gif","4.gif"); for($i=0; $i<=$#file; $i++){ $jj=$i.$kaku; $jjj=length($jj);  #レングス5になってました print "<img src=\"$jj\" width=\"55\" height=\"35\">\n"; print "<img src=\"$bb[$i]\" width=\"55\" height=\"35\">\n"; print <<EOM; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <img src= "$jj" width="55" height="35"> EOM }

みんなの回答

  • urakids
  • ベストアンサー率77% (7/9)
回答No.4

初歩的な質問になるんですが httpdソフトは動いてますか? またperlは関連付けられて動いていますか?

sho2009
質問者

お礼

httpdにPerlモジュールをインストールして確認すると画像表示可ですですからサーバーサイドのインタープリタの問題とも思いますが---質問のスクリプトを動作させる為には沢山あると思いますがどのようなPerlモジュールが必要なのでしょうか?もしお分かりになる方がいらっしゃればご回答お願いします。このような事はサーバーの違いによって起こる事なのでしょうか合わせてお願いします

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

えぇと.... HTML的にきちんと書こうという気持ちはありますか? my @bb = qw(0.gif 1.gif 2.gif 3.gif 4.gif); print <<"EOM"; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>test</title> </head> <body> <ul> EOM for my $file (@bb) { print qq(<li><img src="$file"></li>\n); } print "</ul>\n</body>\n</html>\n"; とかだとどうだろう. ああ, レスポンスヘッダが必要かどうかは知らないので, 必要ならさらに前につけてください.

sho2009
質問者

お礼

迅速な回答ありがとうございました ご回答のスクリプトをそのまま画像が表示されないスクリプトの中に追加して試しましたが表示されたのはliタグのみで画像表示はされませんでした 添付JPEG画像参照して下さい 表示されない画像を右クリックしてプロパティーを見ても正規画像名称が表示されています。ご回答者3人の回答より画像ファイル名を配列の要素で指定しても文字列の結合によって作成した変数で指定しても <img src= "xxx" の xxxに画像ファイル名が入って いれば表示されるとのことを言われていると解釈しましたが本解釈でよろしいでしょうか?となるとサーバのインタープリタの問題としか思えなくなってきてますが? それとも他に方法があるのでしょうか? ご教示お願い申し上げます

  • urakids
  • ベストアンサー率77% (7/9)
回答No.2

まぁ妥当に考えるかぎりでは、Content-type宣言を行っていないからではないですか? print <<EOM; <!DOCTYPE HTML PUBLIC ~ の上に print "Content-type: text/html;\n\n"; と入れれば出るんじゃないでしょうか?

sho2009
質問者

お礼

迅速な回答ありがとうございました print "Content-type: text/html;\n\n";との記述を print <<EOM;の上下に記述しましたが Content-type: text/html; print "Content-type: text/html; "; 画表示されて残念ながら画像は表示されませんでした お二人のご回答より画像ファイル名を配列の要素で指定 しても文字列の結合によって作成した変数で指定しても 下記<img src= "xxx"  xxxに画像ファイル名が入って いれば表示されるとのことですね print "<img src=\"$bb[$i]\" <img src= "$jj" サーバのインタープリタの問題なのでしょうか? それとも他に方法があるのでしょうか? ご指導お願い申し上げます

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.1

配列 @bb に表示したい画像ファイル名5個が定義されているのなら素直に for($i=0;$i<scalar@bb;$i++){ print "<img src=\"$bb[$i]\" width=\"55\" height=\"35\"><br>\n"; } で良いじゃないですか。 ※このスクリプトと違う場所に画像ファイルがあるのならパスを付ける ※前後に必要なヘッダとタグは出力しているものとします。

sho2009
質問者

お礼

迅速なご回答ありがとうござい、ました。残念ながら画像表示はできませんでした。ヘッダとタグは文字が表示されているので問題ないと思います。パスは本デレクトリー内に画像ファイルがあるので問題ありません。forの中の$#fileには文字列配列が入ってます 本forの中にご回答のスクリプトを入れて二重に回しましたが表示されませんでした。又ご回答のスクリプトをそのまま画像が表示されないスクリプトの中に追加して試しても画像表示はされませんでした。以上報告します。もし他にもプログラミングの方法があるのであればご指導お願いします。

関連するQ&A