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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

2445閲覧

拡張子jsファイルにPHPで書きたい。

terapro

総合スコア39

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2019/08/21 07:41

編集2019/08/21 07:48

こんにちは、いつもここではお世話になっております。

PHPとMySQLを勉強して、現在はJavascriptを勉強中です。
たまたま、よく活用してたカウントダウンタイマーに
PHPでCookieを設定しようと中身を見ていました。

そのカウントダウンタイマーは、
Javascriptとhtmlとcssの3つに分かれていて、
両方とも拡張子がhtmlでした。

index.html // ホームページ
countdown.html // カウントダウンタイマー設定ページ。jsとcssが入ってる
style.css // cssファイル

.htmlと.cssと.jsの3つで構成されているテンプレートはよく見かけるのですが、
カウントダウンタイマーが.htmlに入っていたので(cssも入ってた)
拡張子を.phpに変更してPHPでcookieを設定したところ、普通に動きました。

拡張子が「.js」のファイルは、実際には、ただのテキストファイル(中身が文字だけのファイル)です。
拡張子が「.txt」のファイルと同じように扱えます。

https://wa3.i-3-i.info/word11804.html

という記事を見かけたのですが、
.jsファイルは、.htmlや.phpに置き換えても問題のない拡張子なのでしょうか?

動作はしているのですが、ではなぜ.jsにするの?
ここにはjsしかありませんよーというただの目印なの?
PHP派の私は全てPHPを埋めこみたくなるクセがあり、
拡張子を全部.phpに変えたくなってしまいます。

恐れ入りますが、得意な方ご回答をお願い致します。

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

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

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

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

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

guest

回答3

0

ベストアンサー

countdown.html // カウントダウンタイマー設定ページ。jsとcssが入ってる

HTMLは、もともとJavaScriptやCSSを埋め込める言語です。

拡張子を.phpに変更してPHPでcookieを設定したところ、普通に動きました。

PHPは、特に設定しない場合HTMLを出力するものとみなされます。HTMLには上述のようにJavaScriptやCSSを埋め込めますので、「JavaScriptやCSSを埋め込んだHTML」を出力しても問題ありません。

(逆に、「CSSファイルだけ」「JavaScriptファイルだけ」をPHPで出力したい場合、Content-Typeの設定が必要です)

.jsファイルは、.htmlや.phpに置き換えても問題のない拡張子なのでしょうか?

基本的には拡張子は正しく付ける必要があります。インターネット上では拡張子でなくContent-Typeでファイルの種類を識別しますが、サーバは通常拡張子からContent-Typeを判別しますので、あえて妙な拡張子を付ける場合にはそれ相応の設定が必要となります(PHPでJavaScriptを出力する場合は、PHPプログラムでContent-Typeを設定することになります)。

投稿2019/08/21 07:47

maisumakun

総合スコア145184

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

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

maisumakun

2019/08/21 07:50

PHPとJavaScriptでは動くタイミングが違いますので(サーバでPHPが動いて結果を生成して、それがブラウザに送られて、ブラウザでJavaScriptが動き出す)、「PHPとJavaScriptを混ぜて書く」となると、それぞれの文法や動くタイミングをしっかり把握して書かないとめちゃくちゃになります。
terapro

2019/08/21 07:57

迅速に回答いただきありがとうございました。おかげさまでスッキリしました。サーバでCookieしてからブラウザでカウントダウンが始まるので普通に動いてますが、なんだか変な拡張子とコードだなあと我ながら眺めてました。大変勉強になりました!
guest

0

動作はしているのですが、ではなぜ.jsにするの?

ここにはjsしかありませんよーというただの目印なの?
PHP派の私は全てPHPを埋めこみたくなるクセがあり、
拡張子を全部.phpに変えたくなってしまいます。

そもそも「拡張子とは」ですね。

Wikipedia:拡張子

ファイルの種類を識別するためにファイルの名前(ファイル名)の末尾につけられる文字列

要は識別のためです。
別の言葉に言い換えると役割分担です。

「動けばそれでいい」そういう人ももちろんいます。
というか「動くこと」は最低限の状態です。

システムというのは不変なものってありません。
どこかで必ず改修、メンテナンスが入るものです。
また、人も移り変わっていくものです。

「どうやって品質を維持していくか」は設計段階(いや要求仕様段階)からのテーマだったりします。
作って終わりではないのです。

そんな中で最もしっかりすべきなのは「それぞれの役割分担」だと私は認識しています。
PHPコードは.phpファイルに
HTMLコードは.htmlファイルに
JavaScriptのコードは.jsファイルに

もちろん、その中でも役割によってファイルやディレクトリをわけておくことはメンテナンス性の向上に大きく関わってきます。

PHPされているのでしたら「なぜオブジェクト指向を導入するのか。全部functionでいけるじゃん」
これ、考えたことないですか?
拡張子の問題から若干飛躍しましたが、これも「役割分担」を如何に突き詰めたうえで、システム・アプリケーションの維持、メンテナンス、改修のために適宜導入していくものと思います。

投稿2019/08/21 07:58

m.ts10806

総合スコア80850

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

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

terapro

2019/08/21 08:04

> システムというのは不変なものってありません。 > どこかで必ず改修、メンテナンスが入るものです。 > また、人も移り変わっていくものです。 おっしゃるとおりで、みんないなくなっちゃったので私が勉強するハメになっております。 > PHPされているのでしたら「なぜオブジェクト指向を導入するのか。全部functionでいけるじゃん」 > これ、考えたことないですか? まさにコレですね。。苦笑いしました。 美しいコードが書けるように努力します!
m.ts10806

2019/08/21 08:08

そうですね。インデントやファイル名、クラス名、関数名、変数名などを意味ある名前にすることで「しばらく時間が経ったあとの自分」にも優しいアプリケーションができあがると思います。 https://qiita.com/rana_kualu/items/95f0c8be51e8665015d5#%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%82%92%E6%9B%B8%E3%81%91 >コード三日会わざれば刮目して見よ、という諺がある。 三日前に自分が書いたコードは、他人が書いたコードと同様に理解不能、という意味だ。
terapro

2019/08/21 08:16

良い息抜きになりました。ようやく読み書きはできるようになったので、これからは時間が経ったあとの自分にも優しいアプリ作れるように精進します(゜Σ゜)
m.ts10806

2019/08/21 08:17

早い段階から意識しておくと今後の成長も段違いになると思いますので、ぜひ。
guest

0

もう解決済みのようだけど
htaccessでリライトすれば好きなように設定できるよ

投稿2019/08/21 08:19

mikkame

総合スコア5036

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

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

terapro

2019/08/21 09:40

うーん、.htaccessで無理くりすると、後で見直した時にもっとワケわかんなくなりそう。。
mikkame

2019/08/21 09:43

フレームワークを使っている前提ですが 実ファイルが存在しなければ全部フレームワークで処理してるんだなぁと考えれば特に混乱しません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問