文系でHTMLしかわからない者です。
htmlファイルに、
<script type="text/javascript" src="http://hogehoge.com/sample/index.php?
param=0"></script>
みたいなタグを記述して、HTMLファイルを呼び出したいと考えています。
いろいろサイトをググってみたら下記のようなソースをみつけました。
<?php
$param = $_GET['param'];
header("Content-type: application/x-javascript");
if ($param == '0') {
echo "document.write(\"WEB Artisan\")";
} else {
echo "document.write(\"RESTARTSYSTEM\")";
}
?>
これを実装すると、「WEB Artisan」が出力されるようになったのですが、ここをhtmlファイルにするにはどうすればいいのでしょうか。
非常に初歩的な質問かもしれませんが、ご指導の程、よろしくお願いいたします。
No.6ベストアンサー
- 回答日時:
どうも、結構根が深い話ですね。
・外部サイトのコンテンツを取り込む
⇒これについては、PHPでは、下記のようにします。
<?php
$html = file_get_contents('http://example.com/include.html'); //読み込ませたいURL
?>
これで$htmlにコンテンツの内容が全部取得出来ます。
・取得したコンテンツの一部分を取得したい
⇒正規表現を使うなり何らかのライブラリ(phpQueryとかsimple_html_dom_parserとかそんな)をつかって必要箇所のみ取得してくる必要があります。
この二点をクリアした前提で、
取得した、コンテンツに含まれるCSSと、必要コンテンツを取り込んできて、HTMLに出力する必要があります。
それをJavascriptを使うことで簡単にすまないかと考えたのだと思いますが、
JavascriptでAjax(非同期通信)を行う場合は、外部のドメインないのコンテンツは引っ張れないので、どうにもできません。
$htmlで取得したコンテンツを適当なファイルに保存してキャッシュしてそれをJavascriptでいじるというのも出来ないことはないですが、取得してきたコンテンツ内のCSSのパスが相対パスで記述されていたりしたら、それを結局いじらなければならなかったりと、それなりに面倒が発生すると思います。
No.5
- 回答日時:
えーっと、イマイチ把握し切れていませんが、
一応、書き直してみました。
-------------------------------------------------
○ test.htm を 以下の一行だけに変更。
-------------------------------------------------
<script type="text/javascript" src="./sample2.php"></script>
-------------------------------------------------
-------------------------------------------------
○ sample2.php は変更なし
-------------------------------------------------
-------------------------------------------------
○ include.htm は #4の補足で そちらが書いたものに変更
-------------------------------------------------
-------------------------------------------------
○ hoge.css を 追加(これも一行のみのファイル)
-------------------------------------------------
div { font-style:italic; }
-------------------------------------------------
これで、一応 表示はしてくれているものの、
自分自身でも いろいろ 疑問が残るシロモノとなっております。。
IE、Firefox、Safari、Chrome、Slepnir で 動作確認しましたが、
いずれも、 test.htm で、include.htm の内容を表示してくれます。
<body>はしょってもブラウザが補完してくれてるっぽいです。
No.4
- 回答日時:
> HTMLファイルを呼び出したいと考えています。
> CSSファイルを読み込ませたいのです。
どっちやねーーーーーーーんっ!という俺の心の叫びは置いといて。。。
<link rel="stylesheet" href="hoge.css" type="text/css" />
↑これでは ダメな理由があって、ここに質問されている事だとは思いますが、
正直、俺の頭では 何をしたいのかが よく分からなくなりました。
既にHTMLのページとして存在しているページのCSSを、
別のページからJavaScriptで読み込んで、別のページのCSSとして使いたいと言うことでしょうか?
もう少し、相手に伝わるように再度 新規にご質問いただくか、他の方の回答をお待ちください。
この回答への補足
見捨てないでください><。説明が言葉足らずでした。
先日アドバイスいただいたものが、
include.htm
-------------------------------------------------
<div style='background-color:azure;'>
我輩は<font color="red">パンダ</font>である。<br>
名前はまだない。
</div>
だったかと思いますが、私が読み込ませたいのは、
include.htm
-------------------------------------------------
<html>
<head>
<link rel="stylesheet" href="hoge.css" type="text/css" />
</head>
<div style='background-color:azure;'>
我輩は<font color="red">パンダ</font>である。<br>
名前はまだない。
</div>
</html>
なんです。bodyなどははしょってますが、divだけでいいのであれば、javaスクリプトで出力する必要はなく、div styleで表現できないものを他のウェブサイトに出力させたいんです。
これで説明になってるでしょうか。。
すいませんが、ご確認、よろしくお願いいたします。。
No.3
- 回答日時:
#1です。
ちょっと軽く考えすぎていました。
シングルクォート、ダブルクォート、改行コードを細工してやらないといけませんでした。
一応、読み込み対象のHTMLでも ある程度の約束事は必要になるかとは思います。
普通に表示しているページだとすると<html>とかが二重に存在する事になりますので。
と言う事で、検証済みの動くサンプルです。
-------------------------------------------------
test.htm
-------------------------------------------------
<html>
<head>
<script type="text/javascript" src="./sample2.php"></script>
</head>
<body>
</body>
</html>
-------------------------------------------------
-------------------------------------------------
sample2.php
-------------------------------------------------
<?php
header("Content-type: application/x-javascript");
$out = implode("" , file("./include.htm"));
//$out = implode("" , file("http://www.google.co.jp/"));
$out = preg_replace("/\r|\n/" , "" , $out);
$out = str_replace("\"" , "\\\"" , $out);
$out = str_replace("'" , "\'" , $out);
echo "document.write('$out')";
?>
-------------------------------------------------
-------------------------------------------------
include.htm
-------------------------------------------------
<div style='background-color:azure;'>
我輩は<font color="red">パンダ</font>である。<br>
名前はまだない。
</div>
-------------------------------------------------
sample2.php の 2行目と3行目のURLは どちらか好きなほうで試してみてください。
この回答への補足
上記ありがとうございます。
しかし、これではだめなんです。言葉足らずですいません。
include.htm
が<div>からになってますが、CSSファイルを読み込ませたいのです。なぜ今回の質問をしたかというと、その部分だけ、出力元のCSSを読み込ませたものを出力したかったからなんです。
なので、<html>が重複するから書いてはいけないという話になると、ちょっと話が変わってきてしまいます。フレームなどで読み込ませるしかないのでしょうか??
No.2
- 回答日時:
HTMLにインクルードする仕組みはありません。
したがって、今のようにjavascriptで組み込むか、
html自体がphpとして機能するようにサーバーを設定するかの
どちらかになると思います
No.1
- 回答日時:
んーー、俺の解釈が間違ってたらすみません。
> これを実装すると、「WEB Artisan」が出力されるようになったのですが
つまりは、その「WEB Artisan」のところに、そちらの記述したいHTMLを読み込んであげればいいわけですね?
だとしたら、こんな感じです。
<?
header("Content-type: application/x-javascript");
$out = implode("\n" , file("読み込みたいHTMLファイル名"));
echo "document.write(\"$out\")";
?>
なお、動作確認はしておりません。
この回答への補足
ありがとうございます。
>つまりは、その「WEB Artisan」のところに、そちらの記述したいHTMLを読み込んであげればいいわけですね?
はい!そのとおりです。
>だとしたら、こんな感じです。
<?php
header("Content-type: application/x-javascript");
$out = implode("\n" , file("http://hogehoge.com/sample.html"));
echo "document.write(\"$out\")";
?>
このように記述し、sample2.phpを生成しました。そして、出力したいファイルに、
<script type="text/javascript" src="http://hogehoge.com/sample2.php"></script>
と記述したのですが、何も出力されませんでした。何か間違っている箇所がありますでしょうか。お手数ではございますが、ご確認、よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
社内イントラネットのHPにアク...
-
PHPの結果をhtmlで保存する方法
-
フォントの色を変えるには?
-
PHPの設定で、 エラーが発生し...
-
onedrive にexcelファイルをア...
-
Linux:PHPでTELNETによるSMTP...
-
ListViewコントロールでサムネ...
-
ボタンのクリック数を合計保存...
-
ワードプレス、Contact Form 7...
-
PHPのif文でその処理を途中で抜...
-
現在位置より2つ上のディレク...
-
別ファイルの変数を呼び出した...
-
【file_exists】ファイルが存在...
-
UWSCでファイルのアップロード...
-
PHPExcel処理速度が遅い
-
PHPで`headers already sent`と...
-
【PHP】declare命令で”Fatal er...
-
PHP8を使うと、大量のWarningが...
-
mysql_close()
-
aws cloud9というものを使って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
index.phpって何ですか? 具体...
-
HPを開くとダウンロードページ...
-
社内イントラネットのHPにアク...
-
PHP4対応のサーバーではinclude...
-
PHPをhtmlに読み込んだファイル...
-
携帯サイト作成する場合の.htac...
-
sitemap.xmlファイル自動生成の...
-
phpで大量のhtmlを任意の順番で...
-
public_htmlと同じ階層にあるフ...
-
拡張子をhtmlにすることのメリ...
-
phpでjarファイルを実行したい
-
phpコードの戻り値をhtmlファイ...
-
PHP 正規表現について教えて下さい
-
phpのheader関数でページ移動さ...
-
php excelダウンロード
-
phpはSEO対策上、問題があると...
-
file_get_contentsでcss読み込み
-
PHPでの複数ファイル出力
-
includeで読み込んだ内容を変数...
-
かなり重い処理をする方法
おすすめ情報