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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

HTML

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

Q&A

7回答

1433閲覧

phpが何者なのか、いろいろ調べてみても分からないです...

NNCT-perc7341

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

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

HTML

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

0グッド

0クリップ

投稿2022/03/19 07:22

前置き

最近 WordPress を操作するようになって、もともとのテーマのファイルをカスタマイズしたいなと思うようになりました。テーマのファイルを参照してみると、全ての拡張子が.phpです。ですが、phpがどういうシステムになっているのかが未だ理解ができず、カスタマイズすることができません。

質問1

phpで構成されていると思われるページを開発者ツールで確認してみると、コードの内容がhtmlと同じような構成になっています。(bodyタグや、divタグやなど...) phpファイルから、どのようにしてhtmlに書き変わっているのでしょうか?

質問2

私が見つけることができていないだけで、本当はhtmlファイルがあるのでしょうか?それとも、htmlファイルが存在しないということもあり得るのでしょうか?

最後に

私は、超がたくさんつくほどのphp初心者です。htmlは理解ができます。また、質問の内容が見当違いのことを言っているようでしたら、それも教えていただきたいです。(特に、質問1は怪しいかと....) 詳しく教えていただけると幸いです。よろしくお願いいたします。

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

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

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

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

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

mike2mike4

2022/03/19 07:53

それほどの初心者で、テーマを改造したいのであれば、本を買いましょう。 なお、開発者ツールで見えるのはPHP内のコードが吐き出したタグで、プログラムそのものはくらいあんとからは見えません。
m.ts10806

2022/03/19 08:51

「質問と回答」という形でアドバイスを得るには非常に難しい内容です。 まずは入門者向けの書籍でWordPress度外視で基礎を身につけていくことからだと思います。
guest

回答7

0

HTTPやWebサーバの学習をしましょう。
本回答は、どこから手を付けて良いかの見当をつける為のアドバイスとして解説していきます。

私達はChrome等のWebブラウザを起動して、teratail等のWebサイトに接続します。
この時、初回のアクセスで「このURLにふさわしいデータをください」というHTTPリクエストがブラウザからWebサイトへ送信されます。
それに対して回答として主に「HTMLとして妥当な文字列データ」をHTTPレスポンスがWebサーバからブラウザに送信されます。

これがHTTP通信という仕様です。
ファイルをわざわざHTTPリクエストやらHTTPレスポンスに言い換えたのは理由があり、
これらは通信する時に受け渡しする文字列データであり、ファイルという個体ではないんだぞという事が重要になってきます。

htmlは理解ができます。

質問者さんが理解して読み書きしているHTMLファイルというのは、
単にこのHTMLという文書ルールを遵守して作られた、文字列が詰まっているファイルです。
これをWebで配信する為にApacheやNginxといったWebサーバアプリケーションの力を借りる事になります。

ApacheやNginxといった起動するとWebサーバとして可動するアプリケーションが存在します。
PCの特定ディレクトリをルートと認識して、URLのパス名と結びつけます
HTTPリクエストを受け取った時にURLのパス名を確認して、
対応するファイルがあれば、ファイルの中身をHTTPレスポンスとして返します。


次にPHPとHTMLがどう関係しているのか?を見ていきましょう。

例えばteratailでは、多くの質問者からの質問がシームレスに新着質問欄に表示されます。
質問がある度に中の人が出社してHTMLファイルを作っている……?
これは中々重労働なので考えにくい。

こういったサービスでは積み重なる情報を捌く為にプログラムを利用します。
「HTTPリクエスト」を受け取るとサーバー内でプログラムが動作します。
プログラムはデータベースから積み上がった質問一覧から相応しい質問をチョイスして即興でHTML文字列を作ります。
その即興で作ったHTML文字列を「HTTPレスポンス」として返しています。

ここで登場するのがPHP!
PHPはHTML文字列を即興で作る為に生み出されたといっても過言ではない経緯を持つプログラミング言語です。
(別にPHPでなくてもNode.js、Ruby、Python、Go、C++…etc、HTTPリクエストから即興でHTMLファイルを作るプログラミング言語は存在し、なんでも構いません)

PHPはApache内で動作する事を重要視しており、
Apacheに組み込んで利用出来る外部モジュールを提供しています。
Apacheユーザーにはとっつきやすいですね。そこがPHPの採用理由となります。

phpで構成されていると思われるページを開発者ツールで確認してみると、コードの内容がhtmlと同じような構成になっています。(bodyタグや、divタグやなど...) phpファイルから、どのようにしてhtmlに書き変わっているのでしょうか?

上記のApacheの例を使って回答すると
PHPモジュールを組み込んだApacheに対してPHPファイルをURLで指定すると
対象のPHPファイルをただ返すという事はしません。
一度PHPモジュールで対象のPHPファイル動作させて、結果をHTTPレスポンスとして利用する挙動に変化します。

つまり先程説明した「即興でHTML文字列を作ってHTTPレスポンスを返す」事がApache+PHPで実現出来るわけですね。
Apacheに限らず、似たような挙動を実現するモジュールの組み合わせはいくつか存在します。
速度を求める人の主流はNginx+php-fpmの組み合わせに移り変わりつつあります。

ただし、PHPはデフォルトではHTMLを生成して返す作りとなっていますが、HTMLを作るだけが能ではありません。
CSS、JavaScript、CSV、JSON、YAML等のHTML以外のテキストデータを作って返すという事も視野に入っています。
少々ニッチですが、電子署名の入ったPNGやJPEG等の即興の画像データを作って返すようなケースもあります。
もしこういうHTML以外を返したい場合headerを使ってContent-Typeを変更することで、Webブラウザに「今から私はJSONファイルを投げますからね」とお知らせします。

私が見つけることができていないだけで、本当はhtmlファイルがあるのでしょうか?それとも、htmlファイルが存在しないということもあり得るのでしょうか?

企業サイトでは会社の概要等の変わりようがないURLにはファイルとして存在しているHTMLファイルを設置すれば良いです。
逆にteratailのような質問サイトや、掲示板、SNSといったサービスでは更新が頻発するのでHTMLファイルはほぼありません。
場所によってはゼロという事もあります。

その理由はもう上で散々述べましたが、
PHPが即興のHTMLを作ってHTTPレスポンスとして返してくれるからHTMLの上位互換として扱えるからですね。
ただし、プログラムの動作を一度経由しているので速度がほんの僅かに犠牲になります。

投稿2022/03/20 08:11

編集2022/03/20 08:48
miyabi-sun

総合スコア21158

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

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

0

  • ブラウザは、あるURLにアクセスすることで、HTMLソースコードを取得してブラウザに表示します。
  • Webサーバは、アクセスされたURLに対応するHTMLソースコードを、クライアント(ブラウザ)に返します。

これはHTTP通信の概要です。もう少し正確な用語を使うと次のようになります。

  • ブラウザは、HTTPリクエストをWebサーバに送ります。
  • Webサーバは、HTTPリクエストを受け付けて、HTTPレスポンスを返します。

Webサーバに注目してください。WebサーバはどうやったらHTTPリクエスト(URLへのアクセス)に対応する、HTTPレスポンス(HTMLソースコードの応答)ができるでしょうか。

その単純な方法の一つが、URLに対応する場所に html ファイルを置くという方法です。質問2で書かれている、おそらくあなたが理解している方法がこれです。

しかし方法はそれだけではありません。プログラムで動的に「HTTPリクエストを解釈して」「それに対応するHTML応答を返す」方法があります。その一つが php ファイルを置いて処理する方法です。

URLの例として、https://example.com/hello_world/?name=Alice というのがあったとしましょう。html ファイルを設置する方法では、その html ファイルに書かれた内容をそのままHTTPレスポンスとして返すことしかできません。例えば、次のような HTML の応答しかできません。

html

1<p>こんにちは!</p>

php を用いる方法では、プログラムによる処理ができるため、次のような php ファイルを設置することで、

php

1<?php 2function esc_attr($str) { return htmlspecialchars($str, ENT_QUOTES, 'UTF-8'); } 3?> 4<p>こんにちは!<?php echo esc_attr($_GET['name']) ?> さん</p>

次のような HTML の応答を実現することができます。

html

1<p>こんにちは!Alice さん</p>

php を用いることで、URL に応じて動的な処理ができるようになるのです。上記は URL のパラメータを HTML 応答に含める例でしたが、それ以外にもデータベースからデータを取得して、その情報を含めた HTML 応答を返すといったこともできます。ブログシステムはそのようにして「システム」として振る舞っています。

1つ目の例では「html ファイルを設置して、それを HTML 応答として返す」でした。2つ目の例では「php ファイルを設置して、動的に処理をした結果 HTML を生成して、それを HTML 応答として返す」でした。2つ目の方法の場合は html ファイルは不要です。

質問全体の答えになっているかは分かりませんが、質問2に対する答えにはなっているでしょう。

投稿2022/03/19 09:15

arcxor

総合スコア2859

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

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

0

まず、HTMLとCSSは当たり前として、JavaScriptも学んでください。
必ずしも学ばなくても理解できるとは思いますが、説明がわかりづらいことも多いと思います。(現に理解されてないし)

まずサイトを表示した場合、人間からすればテキストに画像等がはりつけられていたりしますよね。でも単なるテキストファイルを表示しても単なるテキストなので改行もないし、画像も表示できない。そこで「ここで改行」とかのメタ情報を付与する必要がある。それがHTMLの役割です。

でもコンピュータがHTMLみたいな言語を理解しているとわけではありません。そもそもコンピュータは0と1からなる機械語しか認識できません。10001111011100001110110110100.. みたいな。

HTMLは機械語でないので機械語に翻訳する必要があります。そこでWebブラウザ(IEやGoogleChrome等)がHTMLを読み取って解釈しています。

つまり、サイトを表示するにはHTMLが必要なのです。

PHPは処理した結果をHTMLにしてそれをクライアント側のWebブラウザに返します。
それによって、そのHTMLを解釈することで表示できるのです。

ヒントは「リクエスト」「レスポンス」ですかね。

参考1: 【PHP超入門】HTTP(GET・POST)について

まずユーザがWebブラウザでURLを入力するなりしてそのサーバに問い合わせる。サーバはそのHTMLを返す。で、PHPのコードが動かされたらサーバ上で処理されてその結果がユーザのWebブラウザに返され、それを解釈する。と言うふうになっているようです。

ボタンが押されたらなんちゃらするとかのような処理はJavaScriptだけでもできますが、teratailとかみたいな入力値を長期間保存しておくことができません。Node.isとかを使えば可能ですが。

そこでサーバサイドのもの、PHPなりNode.jsなりの言語やフレームワーク等を介してDBのようなものからデータを取り出したり保存したりするのです。

そのためにPHPが使われます。もちろん他の言語も一応同じです。得意不得意や書き方が違いますが。

質問2についてはそのプロジェクトによると思います。おそらく、(計算等の)なんらかの処理の後にHTMLに固めてそれを表示しているだけだと思います。一応HTMLに固めなくても表示自体はできますが、どのみちHTMLになるので。

まずは他の方も仰っているように、『PHPの本なりサイトなりを使って自分でやってみれば』いいのではないかと。ここで説明されているものを読んでも実感がないので理解できないと思います。
人間は自分の経験や知識を元にイメージするので、自分の知識や経験にないものを言葉だけで説明されても理解できません。(だからオブジェクト指向だのなんだのをちゃんと理解しているひとが少ないのではないでしょうか)

投稿2022/03/19 08:46

BeatStar

総合スコア4958

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

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

0

詳しい回答は他の人がしているので私は学び方だけ...

まずHTMLやCSSは「マークアップ言語」と言います。
対して、PHPやJavaScriptは「プログラミング言語」です。

両者の違いはかなり大きいので、勉強方法はまるで違います。
HTMLとCSSはタグとその属性(colorとか)を覚えれば一通りは書けます。
見た目の構造を文字で書いているだけですから...

PHPはプログラミング言語なので、見た目では無く処理を書く言語です。
もちろん処理の結果を見た目に出力することはありますが、そのときはHTMLで出力します。

「HTMLを書く」から「HTMLの書き方をパソコン(サーバ)に教える」みたいなイメージかな🤔

なので、HTMLとPHPを混ぜて勉強するのは後!
まずはPHPだけ説明しているようなもので勉強した方が後々絶対にいいです。
HTMLによく使うPHPだけ学んでいるタイプの人もたまにWebデザイナーにいますが、出来ることが少なすぎて「PHP使っている意味ないじゃん😅」みたいな人も多いです。

特にWordPressでテーマをいじるならなおさらPHPの基本的な所は押さえた上で、WoredPressの関数群(WordPressが用意してくれている道具)の理解をしていかなければなりません。
※テーマをいじる度合いにもよりますけどね👀

PHP言語を直接学ぶのもよし、C言語の基本だけやってみるのもおすすめです。
PHPはC言語を元にして作られているので、かなり似ていますよ😊
C言語から入る利点は、PHPを学ぼうとすると、どうしてもHTMLと混ぜた知識ばかり書いているサイトにでくわすので、完全にプログラミング言語だけ先に学ぶ!...という意味ならC言語の方が調べやすいです。
※ただ、C言語ではクラスという概念が余り学べないので、そこだけはPHPで勉強した方が良いかも👀

実例を挙げると「1〜10まで表示する処理を書きましょう」を終わらせた。
->C言語の記事だったら次は「1〜10の偶数だけ表示してみましょう」とかになります。
->PHPの場合「1〜10を表形式で表示してみましょう」なんて方向に進ませる記事があります。
表形式で表示するのはPHPの概念ではなくHTMLの概念...ここを混ぜるとプログラミングの基本というところがぼやけるような気がします。C言語だとあくまで処理の命令の仕方だけ学ぶという記事が多いです👀

参考になれば幸いです😊

投稿2022/03/25 14:51

HiraKazu1124

総合スコア322

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

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

0

他の方が専門的に詳しく回答されているので、実用的で基本的なことを紹介。※PHPの仕組みを詳しく知りたい場合はほかの回答者さんが紹介されています。

PHPの存在意義

簡単に説明すると、世界のどこかにウェブサイトを表示させるなどいろんなことをやってくれる「サーバー」というでっかい機械があるわけです。
ウェブサイトはそのサーバーを利用することで表示されています。

サーバーにはいろいろな種類があるわけですが、その中には、「データベースサーバー」という、データを保管してくれる便利なものもあります。
では、そのサーバーを使いこなすのにはどうすればいいのか。
それがPHPという言語です。

PHPを使って、サーバーに「データを保管しろ!」とか、命令したり、データを引っ張り出してきて画面に表示させたりできます。

具体的な書き方

PHPはHTMLコードの中に埋め込んで使う言語です。
HTMLコードの中に<?php ここにPHPを記述 ?>という風にして書きます。
つまり、HTMLと合体させて使う言語です。
注意点として、PHPを使いたいファイルの拡張子は.htmlではなく.phpにする必要があります。

最後に一言

新しい言語を学ぶときは、参考書を一冊買うことをおすすめします。
自分もPHPを始めた時はよくわからず混乱していたものの、本を見ながら学習したこと、インターネットの仕組みについて知ったことで習得できました。

投稿2022/03/23 08:22

gakusei-kaeru

総合スコア17

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

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

0

PHP is a encoding and scripting dialect to make dynamic active websites. WordPress is definitely written using PHP as being the scripting dialect. The same as WordPress, PHP is likewise open supply.

PHP can be a hardware side language, which in turn ensures that it works on your website hosting server. When someone visits your internet site, their browser associates your server to be able to request the webpage. The PHP signal runs on typically the server, and builds an HTML webpage to send for the visitor. The customer then sees typically the HTML page inside their browser. They will can’t start to see the PHP script because it is very only on typically the hosting server.

投稿2022/03/19 12:33

kritishah

総合スコア10

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

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

0

PHP is a encoding and scripting dialect to make dynamic active websites. WordPress is definitely written using PHP as being the scripting dialect. The same as WordPress, PHP is likewise open supply.

PHP can be a hardware side language, which in turn ensures that it works on your website hosting server. When someone visits your internet site, their browser associates your server to be able to request the webpage. The PHP signal runs on typically the server, and builds an HTML webpage to send for the visitor. The customer then sees typically the HTML page inside their browser. They will can’t start to see the PHP script because it is very only on typically the hosting server.

投稿2022/03/19 12:33

kritishah

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問