![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
ツールとなるファイルがあり、
そこから同一のサーバー内の他階層からHTMLソースを取得しようとしています。
▼階層イメージ
hoge/tool/tool.html //ツール
hoge/a/index.html //対象のファイルA
そして、色々ためしてajaxで対象のソースを取得し
ツール内にあるtextareaに書き出しするところまではできたのですが、
そもそも取得時点でインクルードの中身まで取得してしまっているので、なんとかインクルードの中身は取得せずにtextareaに書き出したいです。
↓これを展開させずにこのまま取得・表示したいです
<!--#include virtual="/include/hogehoe.html" -->
そこで、
そもそも「インクルードの中身は取得せずに対象ファイルの素のソースを引っ張ってくることは可能か不可能か」ということをお聞きしたいです。
使用言語は問いません。
①可能かどうか
②可能な場合どのようなやり方で実装できるのか(「そういったことができるツールとかプラグインあるよ」的なことでも大丈夫です)
③不可能な場合は代替案など(これはもしあれば程度でよいです…)
以上ご教示いただければ幸いです。
No.3ベストアンサー
- 回答日時:
そのコードならインクルードされた状態で取得されて当然。
httpでGETしてるんだから。クライアント側でサーバのファイルを取得する手段がhttp以外に無いのなら無理でしょう。
サーバ側でperlなりphpなりshなりで対応してください。
取得部分なんてほんの数行で書けるはずですよ。
No.2
- 回答日時:
はぁ、表示のときにインクルードされるのではなく取得のときにですか。
。。取得をどのように行っているのか(httpプロトコル使ってる?)によりますが、perlでもphpでもshでも普通に「ファイルの読み込み(ファイルオープン)」すればいいのではないですかね?
例えばshスクリプトでwgetすればインクルードされるのかもしれないけど(やったことないですが)、単にcatするだけならインクルードされませんよね?
fopenとかreadfileとか。
取得部分のajaxソースってどうなってるのでしょう。
No.1
- 回答日時:
まだちょっと質問が理解しきれない気がするけど、
・hoge/a/index.html の中に<!--#include virtual="/include/hogehoe.html" -->というソースがあって、
・hoge/tool/tool.html で hoge/a/index.html を取得したときに /include/hogehoe.html までインクルードされた状態でtextareaに表示されてしまうのをなんとかしたい
ってことで合ってます?
だとすれば、
表示するときに<pre>タグを使うとか、特殊文字をエスケープすればいいのではないですかね?
そんなに珍しい作業でもないと思うけど。
回答ありがとうございます!
認識としてはその通りです。
「hoge/a/index.htmlの中に<!--#include virtual="/include/hogehoe.html" -->というソースがある」という点について後程補足に追記します。
質問についてのご認識の通りです。
しかしながら、
・表示するときに<pre>タグを使う
・特殊文字をエスケープする
上記対策以前の問題で、「取得」した時点でインクルード内のソースまで取得してしまっているため
preタグを使おうがエスケープしようが表示はインクルード先のhogehoe.htmlの中身も一緒に表示されてしまうのです。
================
▼tool.htmlの中身
<!DOCTYPE html>
<html lang="">
<head>
<title>ツール</title>
</head>
<body>
<textarea></textarea>
<script>//HTMLを取得してくるスクリプト</script>
</body>
</html>
▼hoge/a/index.htmlの中身
<!DOCTYPE html>
<html lang="">
<head>
<title>なにかしらのページ</title>
</head>
<body>
<!--#include virtual="/include/hogehoeg.html" -->
</body>
</html>
▼hogehoeg.htmlの中身
<h1>AAAA</h1>
<p>BBBBBB</p>
...
================
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- WordPress(ワードプレス) 投稿した文書の編集ができません。 1 2022/04/23 23:15
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- 法学 会社法166条 但し書きについて 5 2022/12/10 07:01
- デスクトップパソコン パソコンが重くなった 34 2022/06/14 19:41
- 政治 立民案で被害者救済を本当にできるのだろうか? 立民の限界を感じる。 特定財産損害誘導行為による被害の 3 2022/11/05 21:20
- その他(バイク) 電動バイク機能がある電動アシスト自転車は、その機能を使わなければ公道走行可能か? 6 2022/06/21 18:20
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Chrome HTML Document (.html)...
-
htmからhtmlへの変更の仕方
-
JSP <%@ %> <% %>が表示されて...
-
コマンドプロンプトのエラーに...
-
コマンドプロンプトの「%1」と...
-
大量のフォルダからひとつのフ...
-
Windows10にデュアルブートでXP...
-
binファイルを解凍したいの...
-
binフォルダーとは?
-
バッチでテキストファイルから...
-
多数のサブディレクトリ内のフ...
-
テンプレートを開いたらWindows...
-
.txtではなく.logの方が良いの...
-
バッチファイル 特定ウインドウ...
-
pythonスクリプトを管理者権限...
-
一括でフォルダと同じ名前にフ...
-
拡張子を元に戻す
-
stable diffusionのインストー...
-
VScodeのエラー解決法 Pythonの...
-
reaper音声ファイルについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Chrome HTML Document (.html)...
-
phtmlって何ですか?
-
phpのファイルがブラウザで開か...
-
1つのhtmlで複数のページを表...
-
拡張子がhtmlのファイルとshtml...
-
作成したhtmlファイルがローカ...
-
<OBJECT>に入れたテキストが表...
-
txtの中身を表示する方法教えて...
-
htmlとshtml
-
サーバーアップすると、ソース...
-
HTMLについて教えてください。
-
インクルードした要素がヘッダ...
-
JSP <%@ %> <% %>が表示されて...
-
これも「ホームページ(サイト...
-
なぜWebサイトとして表示されな...
-
1ページ当たりの適当なバイト...
-
XVLファイルがブラウザ上で表示...
-
PHPで<img>をprintすると、Nort...
-
jQueryでLoad後の表示位置について
-
.htaccessによるBasic認証の設...
おすすめ情報
補足します。
hoge/a/index.htmlの中には
<!--#include virtual="/include/hogehoeg.html" -->というソースがあります。
【理想】取得したいのはhoge/a/index.htmlの中身そのままのHTML
実際に取得されてしまうのはhoge/a/index.htmlとhogehoeg.htmlが合体したもの
↓インクルードが読み込まれた状態のこれが取得されてしまう
<!DOCTYPE html>
<html lang="">
<head>
<title>なにかしらのページ</title>
</head>
<body>
<h1>AAAA</h1>
<p>BBBBBB</p>
</body>
</html>
↓最終的な理想の取得状態
<!DOCTYPE html>
<html lang="">
<head>
<title>ツール</title>
</head>
<body>
<textarea>
<!DOCTYPE html>
<html lang="">
<head>
<title>なにかしらのページ</title>
</head>
<body>
<!--#include virtual="/include/hogehoeg.html" -->
</body>
</html>
</textarea>
<script>//HTMLを取得してくるスクリプト</script>
</body>
</html>
ajaxは以下のようになっています。
var filepass = "hoge/a/index.html"; //取得したいファイルパス
$.ajax({
url: filepass,
type: 'GET',
dataType: 'html',
success: function (data) {
$('textarea').text(data); //テキストエリアにコードを書き出し
},
error: function (data) {
//取得できなかった時の処理
}
});
ちなみに、なぜajaxを使用したかというの私がサーバーサイド言語に疎く、
クライアントサイドの言語しか扱ったことがなかったためそれで再現しようとしました。
しかしながらクライアントサイド言語のみではやはり限界ではないかと考え、
今回言語問わず質問させていただきました。