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

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

ただいまの
回答率

90.51%

  • PHP

    20343questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

phpで画像が関数に入っているのに表示されない。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 228

hatimaki

score 19

phpで画像と名前を入力し、以下のソース(gazou-touroku.php)で

<!DOCTYPE html>
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<?php
 $name=$_POST["a"];
 $up=$_FILES["b"]["name"];
 $ret=move_uploaded_file($_FILES["b"]["tmp_name"],"./".$up);

  print("登録しました。");

 list($width,$height)=getimagesize($up);


 $bw=400;
 $bh=300;

  $sw=120;
  $sh=90;

  $moto=imagecreatefromjpeg($up);
  $big=imagecreatetruecolor($bw,$bh);
  $small=imagecreatetruecolor($sw,$sh);

  imagecopyresized($big,$moto,0,0,0,0,$bw,$bh,$width,$height);
  imagecopyresized($small,$moto,0,0,0,0,$sw,$sh,$width,$height);

 $f=file("gazou-touroku.txt");
 $no=count($f);

 $bigname=$no."_b.jpg";
 $smallname=$no."_s.jpg";

 imagejpeg($big,$no."b.jpg");
 imagejpeg($small,$no."s.jpg");

 $f=fopen("gazou-touroku.txt","a");

 $data=$name.",".$bigname.",".$smallname."\n";


  fputs($f,$data);

  fclose($f);
?>
</body>
</html>


サイズが400×300と120×90の2つので画像を作成し、gazou-touroku.txtに保存し、

<!DOCTYPE html>
<html lang="ja">
<meta charset=utf-8>
<body>
<div id="items">
 <?php
 $f=file("gazou-touroku.txt");
 foreach($f as $key=>$value){
     $a=explode(",",$value);

         print("<div class='comment'>");
         print("タイトル:".$a[0]."<br>\n400×300<br>\n"); 
         print("<img src='".$a[1]."'><br>\n");
         print("</div>");

         print("<div class='comment'>");
         print("タイトル:".$a[0]."<br>\n120×90<br>\n"); 
         print("<img src='".$a[2]."'><br>\n");
         print("</div>");


   }

?>
</div>
</body>
</html>
<style>
body{
         background-color:#00bfff;
}    
div.comment{
         background-color:#7fff00;
         float:left;
         margin:10px;
         text-align:center;
          border:1px solid #ccc; 

         }
#items{
          overflow:hidden;
}
</style>


上記のソース(gazou-touroku-kakunin.php)で表示させるというものを作成したのですが、

画像が表示されません。

ちなみにリサイズされた2つの画像と元の画像はサーバーのフォルダーに入っており、

$a[1]と$a[2]にリサイズ画像が入っていることはvar_dumpで確認済みです。

以下のものがgazou-touroku-kakunin.phpをプラウザの「ページのソースを表示」で表示されたものです。

<!DOCTYPE html>
<html lang="ja">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div id="items">
 <div class='comment'>タイトル:ブドウ<br>
 400×300<br>
 <img src='0_b.jpg'><br>
</div><div class='comment'>タイトル:ブドウ<br>
 120×90<br>
 <img src='0_s.jpg
 '><br>
 </div>
</div>
</body>
</html>
<style>
   body{
         background-color:#00bfff;
   }    
   div.comment{
         background-color:#7fff00;
         float:left;
         margin:10px;
         text-align:center;
          border:1px solid #ccc;

    }
    #items{
          overflow:hidden;
    }
</style>


ソース上では入力した画像名が表示されているのですが・・・。

アドバイスをお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+2

 imagejpeg($big,$no."b.jpg");
 imagejpeg($small,$no."s.jpg");


で出力しているので、

htmlに出力される、ファイル名はそれぞれ、

0_b.jpg → 0b.jpg
0_s.jpg → 0s.jpg

と出力されていないとおかしい。

$data=$name.",".$bigname.",".$smallname."\n";

↑ここに間違いがありますね。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/09/22 18:57

    Kosuke_Shibuya様 ご指摘をいただきありがとうございました。おかげさまで解決しました。

    キャンセル

0

imagejpeg($big,$no."b.jpg");
imagejpeg($small,$no."s.jpg");


の部分を

imagejpeg($big,$no."_b.jpg");
imagejpeg($small,$no."_s.jpg");


に修正したことで解決しました。

ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.51%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • PHP

    20343questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。