• ベストアンサー

画像読み込みとランダム表示について。。。

(まえおき)PHPを最近始めましたがちんぷんかんぷんで非常に困っています!とりあえずやってみよう!と分からないなりに進めてきましたが限界があり、脳細胞が溶けて死んでしまいそうなので質問させて頂きます。 (本題)Dream Weaverで簡単なウェブページを作成中です。画像を3枚ぐらいをランダム表示させようと進めています。 (疑問1)SQLが使えないのでDream Weaver内の同列に画像ファイルを作り、そこから読み込めるようにしようと考えましたが、可能なのでしょうか? (疑問2)<?php srand((float) microtime() * 10000000); $input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank"); $rand_keys = array_rand($input, 2); echo $input[$rand_keys[0]] . "\n"; echo $input[$rand_keys[1]] . "\n"; ?> ↑上記のサンプルを手にいれたので $input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank"); のNeo Morpheus Trinity Cypher Tank の箇所に画像を入れたらいけるのでは?と思い image/photo.jpg.... と記入していきましたがエラーになってしまいました。どうやったらテキストの代わりに画像入れられるのでしょうか?? (締め)基本をあまり理解していませんのでとんでもなく意味不明な質問なのかもしれませんが、どうぞお助けください。お願いします。。。 

  • PHP
  • 回答数3
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • awazak
  • ベストアンサー率36% (61/165)
回答No.1

まったく別物ですが…。どうぞ。 <?php //画像ファイル名の設定 $images = array( 'aiueo.jpg', 'kakikukeko.jpg', '6451.png', 'sanpuru.gif', 'nanntoka.jpg', ); //画像の数 $image_num = count( $images); //乱数生成 $randam = mt_rand( 0, $image_num-1); //画像タグの設定 $imgtag = "<img src='{$images[$randam]}'>"; echo $imgtag; ?>

reiko19840303
質問者

お礼

早速のご回答ありがとうございます!うれしいです。 今から試してみますので、出来具合、後で報告します!

その他の回答 (2)

回答No.3

<? $imgdata=array(); $dir=@opendir("./img") or die("ディレクトリののオープンに失敗しました"); while($file = readdir($dir)) { $imgdata[]=$file; } closedir($dir); //ランダムに抽出 $img=array_rand($imgdata,1); //表示 echo '<img src="./img/'.$imgdata[$img].'" width="縦" height="横" border="0">'; ?> この方法だったら、配列を作成する必要はないです。 写真をいれるフォルダ(./img)に写真をいれるだけでOKです。

reiko19840303
質問者

お礼

回答ありがとうございます! 今日は時間がないので明日にでも試してみます! やっぱり、分からないといって考えすぎて何もしないより どんどん作品を作って試行錯誤することが身に付ける上で大切ですね。

  • awazak
  • ベストアンサー率36% (61/165)
回答No.2

すいませんエラーですね。 <?php //画像ファイル名の設定 $images = array( 'aiueo.jpg', 'kakikukeko.jpg', '6451.png', 'sanpuru.gif', 'nanntoka.jpg' ); こうです!

reiko19840303
質問者

お礼

う~む。。。 画像書き出しがうまくいきません。。。 ×表示で出てきます。。。 多分画像を取り出す行程の設定 に不足があるみたいなので何とか捻出してみます! ×表示まで出たので,×を画像が出るまで頑張るだけです!少しですけど先が見えてきました(^u^)/

reiko19840303
質問者

補足

一回だけ成功しました! でも少し設定に情報を足したらエラーに。。。 もう一回やり治したら一回できてたところが エラーに。。。 きっと無意識に変なことしてしまってるんでしょうね。見直します。 でも一回できてるんで何とかなりそうです! ありがとうございました☆

関連するQ&A

  • 時間が経つと表示文字が変わる構文

    PHPの含まれた会社のホームページで、 急遽変更しなくてはならない部分が出たのですが、 担当する人が体調を崩してしまいました。 そこで、少々HTMLをかじった程度の素人である私が 対応しなくてはいけなくなったのですが、 マニュアルを見ても記述方法を見つける事が出来ない為、 こちらで質問させて頂きました。 行いたいのは下記のような表示方法です。 ・6時~11時59分は「おはようございます」と表示 ・12時~17時50分は「こんにちは」と表示 ・18時~翌朝5時59分は「こんばんは」と表示 現在は、「おみくじ」が表示されるようになっています。 ここを、上記の表示方法に変えたいのですが。 記述方法は下記の通りです。 <?php srand ((float) microtime() * 10000000); $omikuji = array ( "大吉", "中吉", "吉", "凶" ); $rand_keys = array_rand($omikuji, 2); ?> <input name="omikujifield" type="text" value=<? echo $omikuji[$rand_keys[0]] ?> size="50"> これを、上記の「あいさつ」に変更したいです。 それでは何卒宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • 重複しないランダム関数を教えて下さい!

    よろしくお願いします。 100個の数字から20個の数字を重複なしで抽出したいと思っております。 以下、悪戦苦闘して作成したphpなのですが、重複が目立ちます。 array_unique関数を使用してみたのですが、どうも上手く行かない上体です。 お分かりになる方、是非ご指導下さい。 <?php for ($i=0; $i<20; $i++) { $num = mt_rand(0,100); echo "$num"; echo "<br>\n"; } ?> 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • 連続でランダムに画像を表示させたい

    フェードで画像が切り替わるjQueryを使って画像を表示させています。 出てくる順番をランダムにしたいと思い、phpを記述しましたが、1枚目だけしか表示してくれません。 デモサイトがこちらです。 http://ijs.uh-oh.jp/demo/ ちなみにphpは、以下のように記述しました。 <figure id="fadein">  <?php $image=array( "image/photo01.jpg", "image/photo02.jpg", "image/photo03.jpg", "image/photo04.jpg", "image/photo05.jpg", ); $image = $image[rand(0, count($image)-1)]; echo '<img src=" '.$image.' " alt="">'; ?> </figure> 1枚だけでなく、ランダムで連続して表示させる方法をご教授ください。 phpは超初心者で自分なりに調べてみましたが、ギブアップしました(>_<)

    • ベストアンサー
    • PHP
  • PHPで画像を表示するプログラムについて

    実行するとランダムで取得した値を利用して、3パターンくらいの画像を切り替えて表示するPHPファイル を作成したいです! 以下のように書いてみたのですが、如何せん初心者なものでできない原因すらわかりません! 間違っているところを是非指摘していただきたいです。 宜しくお願い致します <?php $rand = rand(1,10); switch($rand){ case 1: echo("1"); break; case 2: echo("2"); break; case 3: echo("3"); break; case 4: echo("4"); break; case 5: echo("5"); break; case 6: echo("6"); break; case 7: echo("7"); break; case 8: echo("8"); break; case 9: echo("9"); break; case 10: echo("10"); break; if ($rand <= 3){ echo"<img src='a.jpg'>"; } elseif ($rand 4< || $rand >6 ) { echo"<img src='b.jpg'>"; elseif ($rand 7< || $rand >10 ) { echo"<img src='c.jpg'>"; } } ?>

    • 締切済み
    • PHP
  • noを指定して詳細なデータを表示したいのですが

    formdb_search.php // データを以下の配列として取得 // $data_array[0] - 求人NO // $data_array[1] - 公開日 // $data_array[2] - 求人の概要 // $data_array[3] - 業界 // $data_array[4] - 規模 // $data_array[5] - 上場区分 // $data_array[6] - 募集職種 $data_array = explode(",",$data_all[$i]); // データ表示フラグが成立している場合のHTML表示処理 echo "<TR>\n"; echo "<FORM method=\"post\" action=\"./formdb_modify.php\">\n"; echo "<INPUT type=\"hidden\" name=\"data_no\" value=\"".$data_array[0]." \">\n"; echo "<TD nowrap><INPUT type=\"submit\" value=\" 詳細\"></TD>\n"; echo "<TD nowrap>" . $data_array[0] . "</TD>\n"; echo "<TD nowrap>" . $data_array[1] . "</TD>\n"; echo "<TD nowrap>" . $data_array[2] . "</TD>\n"; echo "<TD nowrap>" . $data_array[3] . "</TD>\n"; echo "<TD nowrap>" . $data_array[4] . "</TD>\n"; echo "<TD nowrap>" . $data_array[5] . "</TD>\n"; echo "<TD nowrap>" . $data_array[6] . "</TD>\n"; echo "<TD nowrap><INPUT type=\"submit\" value=\" 詳細\"></TD>\n"; echo "</FORM>\n"; echo "</TR>\n"; //データ表示件数を1加算 $data_view++; } data_noを指定して、詳細なデータを表示したいのですが data_noにデータが代入されてないみたいなのですが どうすれば良いでしょうか? formdb_modify.php //データ取得処理 for($i=count($data_all)-1; $i>=1; $i--){ // データを以下の配列として取得 // $data_array[0] - No. // $data_array[1] - 公開日 // $data_array[2] - 求人の概要 // $data_array[3] - 業界 // $data_array[4] - 規模 // $data_array[5] - 上場区分 // $data_array[6] - 募集職種 $data_array = explode(",",$data_all[$i]); if($data_array[0] == $data_no){ $koukai = $data_array[1]; $gaiyou = $data_array[2]; $gyoukai = $data_array[3]; $kibo = $data_array[4]; $kubun = $data_array[5]; $shokushu = $data_array[6]; $poji = $data_array[7]; $nenrei = $data_array[8]; $seibetsu = $data_array[9]; } } ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <TITLE>データ詳細</TITLE> </HEAD> <BODY> <DIV align="center"> <H1>データ詳細 No.<?php echo $data_no ?></H1> <A href="./mail.html">求人案件情報登録へ</A> <A href="./formdb_search.php">求人案件一覧へ</A> <FORM method="post" action="<?php echo $PHP_SELF ?>"> <INPUT type="hidden" name="set" value="modify"> <INPUT type="hidden" name="data_no" value="<?php echo $data_no ?>">

    • 締切済み
    • PHP
  • PHPの配列の出力について

    $loop = 5; $count = 0; while($count < $loop){ mt_srand(microtime() * 100000); $rand_key = rand(0,9); if (in_array($rand_key, $yomi)){ $count--; continue; } echo $yomi[$rand_key]\n; } 配列($yomi)に格納されたひらがなから5つ重複させずに選び出したいのですが、 randで選出された「りんご」が2度選び出された場合、これでやり直しされますか? 現在出力出来る環境がありません… 初心者ですので指摘やアドバイス等いただけると嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • fgetcsvでデータが何も表示されないのですが!?

    $data_all = fopen( "maillog.csv","r" ); while (($data_array = fgetcsv($data_all, 1000, ",")) !== FALSE) { $num = count($data_array); for($i=count($num)-1; $i>=1; $i--){ echo "<TR>\n"; echo "<FORM method=\"post\" action=\"./formdb_modify.php\">\n"; echo "<INPUT type=\"hidden\" name=\"data_no\" value=\"".$data_array[0]."\">\n"; echo "<TD nowrap><INPUT type=\"submit\" value=\" 詳細\"></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[0] . "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[2] . "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[3] . "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[4] . "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[11] ."~" .$data_array[12]. "</FONT></TD>\n"; echo "<TD nowrap><FONT size=-1>" . $data_array[14] . "</FONT></TD>\n"; echo "</FORM>\n"; echo "</TR>\n"; //データ表示件数を1加算 $data_view++; } } fclose($data_all); 上記のプログラムを書いたのですが データが表示されないのです どう修正すれば良いのでしょうか?

    • 締切済み
    • PHP
  • Noのデータ受け渡しで同じNoが表示されてしまうのは何故!?

    formdb_search.php 一覧表示させるphpです。 echo "<TR>\n"; echo "<FORM method=\"post\"action=\"./formdb_modify.php\">\n"; echo "<INPUT type=\"hidden\" name=\"data_no\" value=\"".$data_array[0]." \">\n"; echo "<TD nowrap><INPUT type=\"submit\" value=\" 詳細\"></TD>\n"; echo "<TD nowrap>" . $data_array[0] . "</TD>\n"; echo "<TD nowrap>" . $data_array[1] . "</TD>\n"; echo "<TD nowrap>" . $data_array[2] . "</TD>\n"; echo "<TD nowrap>" . $data_array[3] . "</TD>\n"; echo "<TD nowrap>" . $data_array[4] . "</TD>\n"; echo "<TD nowrap>" . $data_array[5] . "</TD>\n"; echo "<TD nowrap>" . $data_array[6] . "</TD>\n"; echo "</FORM>\n"; echo "</TR>\n"; //データ表示件数を1加算 $data_view++; } ?> <TR> <TH nowrap>詳細</TH> <TH nowrap>No.</TH> <TH nowrap>公開日</TH> <TH nowrap>求人の概要</TH> <TH nowrap>業界</TH> <TH nowrap>規模</TH> <TH nowrap>上場区分</TH> <TH nowrap>募集職種</TH> </TR> </TABLE> formdb_modifyのphpで、詳細を選択したNo.を表示するPGです。 // データファイルから1行ずつ配列として読込み $data_all = file("../../db/csv/maillog.csv"); //データ取得処理 for($i=1; $i < count($data_all);$i++){ // データを以下の配列として取得 // $data_array[0] - No. // $data_array[1] - 公開日 // $data_array[2] - 求人の概要 // $data_array[3] - 業界 // $data_array[4] - 規模 // $data_array[5] - 上場区分 // $data_array[6] - 募集職種 $data_array = explode(",",$data_all[$i]); $data_no = $_POST['data_no']; if($data_no == $data_no){ $kyujin=$data_array[0]; $koukai=$data_array[1]; $gaiyou=$data_array[2]; $gyoukai=$data_array[3]; $kibo=$data_array[4]; $kubun=$data_array[5]; $shokushu=$data_array[6]; $poji=$data_array[7]; $nenrei=$data_array[8]; $seibetsu=$data_array[9]; } } ?> <HTML> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <TITLE>データ詳細</TITLE> </HEAD> <BODY> <DIV align="center"> <H1>データ詳細 No.<?php echo $_POST['data_no'] ?></H1> <A href="./mail.html">求人案件情報登録へ</A> <A href="./formdb_search.php">求人案件一覧へ</A> <FORM method="post" action="<?php echo $PHP_SELF ?>"> <INPUT type="hidden" name="set" value="modify"> <INPUT type="hidden" name="data_no" value="<?php echo $data_no ?>"> <?php> $data_no = 0; ?> <TABLE align="center" cellpadding="10"> <TR align="left"> <TD>求人No.</TD> <TD><INPUT type="text" name="kyujin" size="20" value="<?php echo $kyujin ?>"></TD> </TR> 何故かどのNo.の詳細を選択しても同じNo.の詳細データが表示されてしまうのですが... 教えて下さい。

    • 締切済み
    • PHP
  • array_randで要素が数字の場合の処理方法

    PHPのarray_randについて教えて下さい。 下記のようなソースを作りましたが思った通りの結果になりません。 //(A) $test=array(3,5,8,11,14,24,26,28); print_r($test); foreach ($test as $val) { echo $val.'<br>'; } //(B) $keys = array_rand($test, 5);//決められた数を抽出 print_r($keys).'<br><br>'; foreach ($keys as $val) { echo $val.'<br>'; } Aの部分の結果は Array ( [0] => 3 [1] => 5 [2] => 8 [3] => 11 [4] => 14 [5] => 24 [6] => 26 [7] => 28 ) foreachの部分の出力↓ 3 5 8 11 14 24 26 28 となりこれは特に問題ありません。 Bの部分でAの配列から5つランダムで取り出したいのですが、結果は Array ( [0] => 0 [1] => 3 [2] => 5 [3] => 6 [4] => 7 ) 0 foreachの部分の出力↓ 0 3 5 6 7 となってしまい、Aの配列の添え字の中から5つの数字が選ばれるようになってしまいます。 Aの添え字ではなく「3,5,8,11,14,24,26,28」の数字から5つランダムで取り出すにはどのような書き方をすればよいのでしょうか? ご回答よろしくお願い致します。

    • ベストアンサー
    • PHP
  • Perl内でPHPの出力結果を表示したい

    Perl製のCGI内で、PHP製のランダムバナー表示CGIを呼ぼうとしたのですが、下記のようなエラーが出てしまいました。 いろいろ試行錯誤したのですが、お手上げです。 どのように修正したらよいでしょうか? なお、ランダムバナー表示CGI 単体だけを実行したときは、正常に表示されています。 [index.cgi]  #!/usr/local/bin/perl  print "Content-type: text/html\n\n";  print "<HTML>\n<BODY>\n\n";  $ImgFileName="./ad.php";  open(IN, "$ImgFileName |");  while (<IN>) {    $str=$str.$_;  }  close(IN);  print $str; [ad.php]  <?php  $_1 = ('<img src="http://example.jp/a.gif">');  $_2 = ('<img src="http://example.jp/b.gif">');  $img_arry = array("$_1","$_2");  srand((double)microtime()*1000000);  $num =array_rand($img_arry);  $image = $img_arry[$num];  echo "$image";  ?> [表示された内容] ./ad.php: ?php: No such file or directory ./ad.php: line 2: syntax error near unexpected token `('' ./ad.php: line 2: `$_1 = ('【a.gifの画像】);'

専門家に質問してみよう