お世話になっております。
.html から、SSI で .inc ファイルを呼び出し、その inc ファイル
内に記述の PHP を実行したいと考えております。
例えば、test.html に
<!--#include virtual="../include/inc/meta.inc"-->
のような記述があり、include.inc に
<?php echo "test"; ?>
のように記述があった場合、php4 では test と表示されるのですが、
php5 では、
<?php echo "test"; ?>
がそのまま出てきてしまいます。
php4 と php5 の httpd.conf の違いは
LoadModule php4_module C:/php446/sapi/php4apache2.dll
LoadModule php5_module c:/php525/php5apache2.dll
の行のみです。(いずれかをコメントにし、4と5を切り替え)
以下、httpd.conf の SSI の動作に影響を及ぼすと思われる
行を抜粋します。(コメント行も含みます)
環境は WINDOWS&Apache2 です。
<Directory />
Options FollowSymLinks MultiViews Includes ExecCGI
AllowOverride All
</Directory>
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
Options All
AllowOverride None
Order allow,deny
Allow from all
</Directory>
AddType application/x-httpd-php .inc .html .php
#AddHandler server-parsed .shtml .html
#AddType text/html .shtml .html .inc
AddOutputFilter INCLUDES .shtml .html .inc
#<Files *.html>
#ForceType text/html
#SetOutputFilter INCLUDES
#</Files>
#<Files *.shtml>
#ForceType text/html
#SetOutputFilter INCLUDES
#</Files>
#<Files *.inc>
#ForceType text/html
#SetOutputFilter INCLUDES
#</Files>
原因は php.ini ですかね?
ご存知の方、ご教授下さい。
No.1ベストアンサー
- 回答日時:
SSIde出力させる為には、PHPをCGIとして動作させる必要があるのではないでしょうか?
久しくSSIを書いてないのでうろ覚えですが、以下はどうでしょう?
<!--#exec cgi="../include/inc/meta.inc"-->
<!--#exec cmd="php /path/to/include/inc/meta.inc" -->
とかとか。
<!--#include virtual・・・の場合、.inc(もしくは他の拡張子に変更して)をCGIとしてhttpd.confに設定する必要があるんじゃないかな?と思います。
include.incは
#!/usr/bin/php
<?php echo "test"; ?>
なんて書いて、パーミッションも実行権限が必要だったり。
header("Content-type: text/plain");も必要かも?
さらにPHPがCGIで動作するようになっていたり。
通常のPHPよりも遅かったり。
あまり良いことは無いと思います。
SSIなんか使わずに直接<? echo "test"?>じゃダメなんでしょうか?
確かに、PHPソース側で content-type の制御とか…
色々と設定が必要かもしれませんね。。
事情がありプログラム構造を変更するのは難しいのですが、
なるべくSSIを使わない方向で検討してみます。
No.2
- 回答日時:
基本的に No.1 のとおりですね。
SSIが処理している中にphpスクリプトを書いても(モジュール動作の)phpは動作はできません。今回はphp4がSAPIのようなので処理されているというだけではないでしょうか?つまり単にphpの実行形態の違いです。SSIで書けるようなことはphpでも書けると思いますので、私もphpで統一した方がいいと思います。
ありがとうございます。
今回に関してはどうにかSSIでやるしか無いのですが、
確かにトリッキーな事をやろうという気がしています。
次回から改善しないといけないですね。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP ECCUBE4のページ管理でPHPを実行させたい 1 2023/04/06 11:42
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- MySQL Mac です。ローカルホストの phpMyAdmin にアクセスできません。 1 2023/06/06 17:14
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
centos6のlogにscript not foun...
-
PHPとshtmlのhtml化共存方法を...
-
教えてgooのようなサイトほかに...
-
includeでHTMLファイルを呼出し...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
PHPのif文でその処理を途中で抜...
-
CSV出力にHTMLが入ってしまう
-
3つ以上の論理積は利用可能なの...
-
<A href ~ と一緒に値を渡すには
-
form actionで二つ送信先を指定...
-
FTPコマンドでディレクトリごと...
-
別ファイルの変数を呼び出した...
-
セッションファイルの場所
-
【file_exists】ファイルが存在...
-
トランザクションが原因?DBに...
-
バッチを用いたフォルダの自動移動
-
.phpと.incファイルの違いはな...
-
HPを開くとダウンロードページ...
-
現在位置より2つ上のディレク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
centos6のlogにscript not foun...
-
正規表現を使い、URLで条件分岐...
-
階層が違う場合の絶対パス相対...
-
文字化けで混乱中です...
-
ロリポップでの.htaccess 設定
-
includeでHTMLファイルを呼出し...
-
バージョンアップしたら「次の...
-
PHP file_get_contents 503 ser...
-
htmlをphpにするにあたってデメ...
-
PHPファイルのシンボリックリン...
-
htaccessでphpとSSIを同時に動...
-
index.phpにbbs.phpを埋め込みたい
-
数値から文字列へ変換後の先頭...
-
ドラえもんDVD 2112年ドラえも...
-
連想配列を含むヒアドキュメン...
-
php リロードしない(再読み込...
-
ランチャの作り方
-
ZendFrameWorkで、.htaccessを...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
おすすめ情報