前提・実現したいこと
phpを使用して同一サーバー内 他階層にあるhtmlファイルのソースコードを取得し、
ページ内に設置してあるtextareaに表示させたいです。
しかし、取得先にはSSIインクルードが使用されており、インクルードの内容は取得したくありません。
①hoge/index.php //元となるページ
②huga/index.html //読み込みたいHTMLファイル
③huga/include.html //インクルードファイル
①hoge/index.phpの中身 ※head要素などは端折ってます。 ```html <body> <textarea> <?php $test = file_get_contents('huga/index.html'); echo $test; ?> </textarea> </body> ``` ②huga/index.htmlの中身 ※head要素などは端折ってます。 ```html <body> <!--#include virtual="include.html" --> </body> ``` ③huga/include.htmlの中身 ```html <div>テストでーす</div> <div>テストでーす</div> <div>テストでーす</div> ``` ### 発生している問題 冒頭にも記載したように、インクルードの中身は取得したくありません。 つまり③は①のtextarea内に記述されないのが理想です。 【現状】実行結果 ※head要素などは端折ってます。 現状は以下のようにインクルードされた状態で出力されます。 ```html <body> <textarea> <body> <div>テストでーす</div> <div>テストでーす</div> <div>テストでーす</div> </body> </textarea> </body> ``` 【理想】実行結果 ※head要素などは端折ってます。 理想は以下のようにインクルード部分は文字列として取得したいです。 ```html <body> <textarea> <body> <!--#include virtual="include.html" --> </body> </textarea> </body> ``` ### 試したこと・補足情報 もともとはajaxを使用して対象ファイルのコードの取得をし、textareaに表示させていましたが、 ajaxではそもそも表示時点ではなく「取得した時点で」インクルード込みで読み込まれてしまい、対策のしようがなかったため取得方法をphpに切り替えました。 初めからphpを使用しておけばよかったのですが私自身がサーバーサイド言語に疎くわからなかったためにphpでの取得も手間取っております。 ※phpに関してはほぼ基礎すら理解できていない初心者レベルです。 ちなみにajaxでは以下のように処理していました。 ```js var filepass = "huga/index.html"; //ファイルパス $.ajax({ url: filepass, type: 'GET', dataType: 'html', success: function (data) { $('textarea').text(data); //textareaにコードを書き出し }, error: function (data) { //取得できなかったらエラーメッセージを表示 } }); ``` --- phpを使用して取得は以下記事を参考に記述しましたが、やはりインクルード部分まで取得してしまいます。 **■参考:**[Qiita:PHPでファイルを開いて読み込む](https://qiita.com/tadsan/items/bbc23ee596d55159f044) 試したphp① ```php <?php $test = file_get_contents('huga/index.html'); echo $test; ?> ``` 試したphp② ```php <?php $test = readfile('huga/index.html'); echo $test; ?> ``` ↑どちらもダメでした --- この「インクルードは読み込まずに素のHTMLソースを取得する」にはどのように記述すればよいでしょうか? また、そもそもそれは技術的に可能なんでしょうか? ご教示いただければ幸いです。 宜しくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/26 04:22