
下記のphpスクリプトの実行結果(print・・・)を、
同じディレクトリ内のaaa.htmファイルの☆☆☆のところへ書き込むスクリプトを考えているのですが、自力ではわからず質問させていただきます。
zzz.php
======
<?php
$strDir=dirname(__FILE__);
$strXml=$strDir."/aaa.xml";
$strXsl=$strDir."/bbb.xsl";
$objPrc=xslt_create();
$result=xslt_process($objPrc,$strXml,$strXsl);
print(mb_convert_encoding($result,"Shift_Jis","UTF-8"));
?>
======
aaa.htmファイル
======
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=Shift_Jis">
<meta http-equiv="Cache-Control" content="no-cache">
<title>タイトル</title>
</head>
<body>
☆☆☆
</body>
</html>
======
どのような方法がありますでしょうか?
ご教授願います。
No.5ベストアンサー
- 回答日時:
zzz.php は cron で実行されるのですね。
でしたら, 以下の方法等があると思います。
1. aaa.htm 全体を cron処理が行われる度に出力する
2. cron処理で aaa.htm が読み込む JavaScriptファイルを生成する
zzz.php の実行ユーザが aaa.htm があるディレクトリに書き込み権限があるならば,
1の方法が一番手っ取り早いです。
(Smarty や HTML_Template_Flexyといった)テンプレートライブラリを用いれば,
簡単に☆☆☆の部分だけを変換することも可能ですし。
1 がだめなら, ☆☆☆の部分を表示する JavaScriptファイルを zzz.php が生成するという 2の方法もあります。
ブラウザからアクセスできるディレクトリに, result.js 等の名前でファイルを出力し,
aaa.htm からはそれを実行するようにすれば JavaScript での制御が可能です。
本当は1で行きたいのですが、レンタルサーバのためsmarty や HTML_Template_Flexyのインストールが危ういため2.で行きたいと思います。
どうもありがとうございました。
No.3
- 回答日時:
すみません, いくつか訂正です。
>aaa.htm に .htaccess という名前のファイルを作成して
aaa.htm があるディレクトリに .htaccess という名前のファイルを作成して
>document.getElementById("hoge") = "置き換えたい文字列";
document.getElementById("hoge").innerHTML = "置き換えたい文字列";
>document.getElementById('hoge') = result;
document.getElementById('hoge').innerHTML = result;
この回答への補足
#2と#3につきまして親切&丁寧な解説感謝いたします。
ちょっと私の説明不足がありましたので補足いたします。
希望している動きは、zzz.phpはクーロンとして動かしているので、aaa.htmファイルからのアクセスがトリガーにはならないのです。
よって、zzz.phpが実行されたときにaaa.htmファイルへ書き込む動きが理想です。
また、ぶっちゃけhtmファイルはファイル名さえ変わらなければその都度全部を書き換えても問題ないので、htmファイル全体を出力してリダイレクトするようなphpでも問題ありません。
説明不足で本と申し訳ございません。
No.2
- 回答日時:
色々と制限のある環境のようですね ^^;
>『# aaa.htm を PHPスクリプトとして動作させることもできたりしますが・・・』が気になります。
レンタルサーバの Webサーバは Apache を想定しています。
もし, aaa.htm が置かれているディレクトリで .htaccess ファイルによるユーザの Webサーバの設定変更が許されていて,
かつ AddTypeディレクティブが有効に働くならば, aaa.htm に .htaccess という名前のファイルを作成して,
以下の1行を記述することで htm の拡張子を持つファイルを PHPスクリプトとして動作させることが可能です。
AddType application/x-httpd-php .php .htm
.htaccess による設定変更が可能かどうかはレンタルサーバ先に確認してみて下さい。
もう一つの JavaScript による方法ですが, ☆☆☆の部分を <div id="hoge"></div> のようにしておき,
JavaScript内で document.getElementById("hoge") = "置き換えたい文字列"; のような感じで置き換えることもできます。
“JavaScript のプログラム自体”を出力する PHPスクリプトを記述し,
aaa.html の先頭で下記のように PHPスクリプトにアクセスしてJavaScript を実行します。
<script type="text/javascript" src="/path/to/zzz.php"></script>
置き換えたい文字列は, zzz.php で JavaScript の変数として出力します。
この例だと $result がそれにあたりますので zzz.php の出力を,
print "var result = " . mb_convert_encoding($result, "Shift_JIS", "UTF-8") . ";";
のように JavaScript の変数宣言文を出力して, aaa.htm 内部のどこかで,
document.getElementById('hoge') = result;
を実行すれば, PHP で加工した値を☆☆☆の場所に埋め込むことが可能です。
No.1
- 回答日時:
aaa.htm はどうしても HTMLファイルではないとだめなのでしょうか?
aaa.php でも良いのであれば,
1. aaa.htm と zzz.php を一つの PHPファイルにまとめる
aaa.htm と zzz.php を合わせて一つの aaa.php にして,
☆☆☆ → <?php print mb_convert_encoding($result,"Shift_Jis","UTF-8"); ?>
のように直接出力する。
2. zzz.php をインクルードする
aaa.html を aaa.php にリネームして, PHPファイルとして実行できるようにし,
☆☆☆ → <?php include("zzz.php"); ?> or <?php require("zzz.php"); ?>
のように, zzz.php を外部ファイルとして読み込む。
等の方法があります。
どうしても aaa.htm のまま使いたいというのであれば, JavaScript を駆使して出来ないこともないですが,
結構複雑になりますし, ブラウザによっては長期間表示がキャッシュされ続けてしまう可能性もあります。
# 見せ方の問題だけなら, Webサーバの設定次第では,
# aaa.htm を PHPスクリプトとして動作させることもできたりしますが・・・
この回答への補足
>aaa.htm はどうしても HTMLファイルではないとだめな>のでしょうか?
はい。require等も考えたのですが最終的にサイトに表示させるファイルではアクセス権の都合でこの外部ファイルzzz.phpを呼び出せないのです。
ですのでいったんhtmファイルに書き出し、
そのままftp関数で最終的に表示させるディレクトリにupする感じにしようと思ってます。
サーバーはレンタルサーバーのためroot権限が無く、
zzz.phpはwebユーザーのディレクトリ
htmファイルはメインユーザー(rootではないです)のディレクトリです。
こんな事情なんです。
もしよりよい方法がありましたらご教授ください。
『# aaa.htm を PHPスクリプトとして動作させることもできたりしますが・・・』が気になります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
apache+phpにおいてリクエスト...
-
.phpファイルが、表示されない
-
サーバー間のファイルの移動(コ...
-
cakephpで特定ファイル表示(hta...
-
textファイル内のデータをルー...
-
PHP内 メールアドレス 暗号化...
-
phpMyAdmin-5.0.4-all-language...
-
PHPでフォルダ選択ダイアログを...
-
サイトのphpソースコードを表示...
-
【file_exists】ファイルが存在...
-
iphoneで虫眼鏡の作り方
-
FTPコマンドでディレクトリごと...
-
makefile でファイルをコピーす...
-
movabletypeでPDFファイルをア...
-
onedrive にexcelファイルをア...
-
Subversionのリポジトリの削除
-
PHP PDOライブラリが読み込まれ...
-
PHPのタイムアウトについて
-
awkの正規表現について
-
phpでのHTMLの表示(特にJavasc...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.phpと.incファイルの違いはな...
-
.phpファイルが、表示されない
-
【file_exists】ファイルが存在...
-
URLが.PHPってどういう...
-
PHPを使ってのサーバ上ファイル...
-
EUC_JP と EUC-JP
-
htdocsフォルダ以外ではPHP...
-
さくらレンタルサーバーでPHPが...
-
htmlspecialcharsが機能してい...
-
CakePHPの .htaccess設定について
-
PHPでフォルダ選択ダイアログを...
-
PHPの戻り値をWINDOWSバッチフ...
-
phpのファイル制御関数について...
-
サーバ無しでphpを動作させる
-
別のドメインのファイルをrequire
-
サイトのphpソースコードを表示...
-
sendmailのパス指定方法
-
apacheで拡張子を省略してアク...
-
クラスが使えない。
-
session_start()でwarningが表...
おすすめ情報