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

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

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

7334閲覧

HTMLにPHP埋め込み:フォルダ内の画像ファイル名を取得し順番にimgタグで表示させたい

Rasny

総合スコア21

PHP

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/06/12 03:58

編集2021/06/12 04:36

HTMLファイル内に、PHPでフォルダ内の画像ファイル名を取得し、順番に<IMG>タグで表示させるスクリプトを埋め込みたいのですが、うまく機能しません。
PHP部分を単独で抜き出し「.php」 ファイルで保存したものは思ったように動作しますが、html内に埋め込むとエラーになります。
「house-img/shiro/」のフォルダ内の画像ファイル名を取得し、IMGタグを順番に生成されるようにしたつもりです。

PHP

1<?php 2 $dir = 'house-img/shiro/'; 3 $array = glob('house-img/shiro/*.{jpg,jpeg,gif,png}', GLOB_BRACE); 4 $num = count($array); 5 for ($i=0;$i<$num;$i++){ 6 print ('<img src='.$array[$i].' width=120><br><br>'."\n") 7 }; 8?>

↓PHP部分を単独で「.php」 ファイルで保存したものは、このように表示されます
ブラウザで見るとフォルダ内の画像がズラーッと順番に表示される状態になります。

html

1<img src=画像ファイル名.拡張子 width=120><br><br> 改行

しかしhtml内に埋め込み、ブラウザで確認すると、下記のように表示されます。

error

1'."\n") }; ?>

解決策をご教授いただければ幸いです。

【追記】
下記のような単純な埋め込みPHPでも動作しないことが判明しました。

html

1<!DOCTYPE html> 2<html> 3<head> 4<meta charset='utf-8'> 5<title>HTML内にPHPを記述する方法</title> 6</head> 7<body> 8<h1><?php echo 'タイトル'; ?></h1> 9<?php 10$text = "HTML内でのPHP実行処理"; 11echo "<p> $text </p>"; 12?> 13</body> 14</html>

PHPが動作する設定のサーバー上で、htmlに埋め込んだから動作しない……ということは在り得るのでしょうか。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

print ('<img src='.$array[$i].' width=120><br><br>'."\n")

};

printの行にセミコロンがありません。
逆にforを閉じる`}'の後ろにはセミコロンは不要です。

PHP

1 print ('<img src='.$array[$i].' width=120><br><br>'."\n"); 2 }

投稿2021/06/12 04:05

itagagaki

総合スコア8402

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Rasny

2021/06/12 04:39

ありがとうございます。 すぐに訂正してみましたが動作しませんでした。そこでヒントを得て、もっと単純なPHPを埋め込んでテストしてみたところ、それでも動作しないことが判明しました(質問本文に詳細を追記しております) もしかすると記述ミスとかの問題ではないのかもしれません……
Rasny

2021/06/13 01:34

下記コメントでご紹介いただいたこちら…… https://y-com.info/contents/?p=1274 これだああああぁぁぁぁぁぁぁああああ!!!!!! 動いたぁぁぁあああぁぁぁぁああああああぁぁあああああ!!!!!!!! ありがとうございます!ありがとうございます! めっちゃ助かりました! 自分としてもPHPファイルに作り変える方が良いのだろうとは思うのですが、変更しなければならないファイルがかなりあり、メインの業務ではないため(主婦業と子育てもありまして)そこに時間を避けないので暫定処置としての導入でした。いずれ手が空いたときにはきちんとしたいと思いますが、今はひとまずこれで動けばという感じです。ありがとうございました。
guest

0

PHPがインストールされたWebサーバ上で動かしてないからではないでしょうか。
PHPを動作させるのためには、PHPをインストールし、ApacheなどのWebサーバに置いたうえでhttpでアクセスする必要があります。

一般的なPCでもきちんとインストールすればWebサーバとして動作させられます。
簡単に入れたいならWindowsならXAMPP、MacならMAMPという必要な環境がセットになったツールを利用すると良いです。

もしくは.htmlにそのまま書いている。
.phpにしてください。

投稿2021/06/12 04:01

編集2021/06/12 04:03
m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Rasny

2021/06/12 04:04

Webサーバーはlolipopという有料レンタルを借りており、テストもそこで行っております。他のphpファイルは動作しているのと、問題点のあるPHPも,単独で抜き出してphpファイルにすれば動作しているので、サーバーの問題である可能性は低いような気がします……
m.ts10806

2021/06/12 04:05

別の可能性を最後2行追記しています。
m.ts10806

2021/06/12 04:06

.phpでもPHPタグ以外は全部出力とみなされるので https://www.php.net/manual/ja/language.basic-syntax.phptags.php .htmlの中にPHPを書くのではなく、.phpの中にHTMLを書いて動的な部分をPHPコードとして書く という認識にしてください。 (.htmlでPHP動かせる設定もできるけど私はやらない派)
m.ts10806

2021/06/12 04:07

ちなみに、エラーって何ですか? 提示されたものはあくまで「出力されたもの」であってエラーメッセージではないですよね。
Rasny

2021/06/12 04:19

htmlファイルへの埋め込みで模索しておりますので、その方法はできかねます。 (HTML記述の量が遥かに多く、PHPはそのうちのごく一部なので)
Rasny

2021/06/12 04:21

そうです表示エラーのエラーです。「エラーメッセージ」ではありません。
m.ts10806

2021/06/12 04:34

それは「エラー」ではないので、表現改めたほうが良いかと。 >htmlファイルへの埋め込みで模索しておりますので、その方法はできかねます。 いずれにしてもサーバ側で何も設定しなければ.htmlでは動きません。 調べればすぐ出てきますが、レンタルサーバで可能かどうかはレンタルサーバの仕様次第なのでご注意ください。
itagagaki

2021/06/12 04:54

https://y-com.info/contents/?p=1274 こういうことですね。 ただこれ、結局逆にすべてのhtmlを(ただのHTMLでも)PHPで実行しちゃうわけなので、私はあまりお勧めしませんけどね。私もm.ts10806さんと同じく、もしわずかでもPHPコードが入っているのなら素直に.phpにするほうが…とは思います。
m.ts10806

2021/06/12 05:00

「.phpをURLに出したくない」という理由なら.phpを出さずにPHP動かす術はありますしね。 フレームワークで採用されている仕組み。teratailもPHPのフレームワークですし。
Rasny

2021/06/13 01:45

m.ts10806様 すみません、表示された内容をエラーとは言わないのですね。表現がよくわかっておりませんでした、失礼いたしました。また丁寧なアドバイスありがとうございました! 潔くPHPファイルにした方が良いという大先輩のご指導は重く受け止めておりますので、いつか時間が空いたときにはあらためて直していきたいと思います。うちの1才児が……もう少し落ち着いた頃には……。
m.ts10806

2021/06/13 02:33

>うちの1才児が……もう少し落ち着いた頃には……。 無理はしないように。家庭が第一です(それに赤の他人なので、それを言われても、そんな落ち着かないときにプログラミングとか赤の他人とやり取りしてる場合じゃないでしょとしか) 「なぜ.htmlでする必要があるのか」というところを突き詰めれば自明かと思います。悪手で茨の道です。自分で御守りできなければあえて選ぶ意味もないかと。やっただけの成果は見込めません。
Rasny

2021/06/13 05:00

本当、コロナが無ければのんびり子育てに専念できるんですけどねぇ……やらにゃ食っていけないので、また何かありましたらよろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問