プロが教えるわが家の防犯対策術!

現在i-mode対応XHTMLでPHPを動かそうと思っているのですが、どうしても動かすことが出来ません。
そもそもi-mode対応XHTMLではPHPを動かすことが出来ないのでしょうか?
よろしくお願い致します。

A 回答 (4件)

状況はわかりました。


お察しの通りAddTypeの問題だと思います。
.xhtmlなる拡張子のファイルにおいてPHPのスクリプトを実行させるには
AddType application/x-httpd-php .xhtml
とする必要があります。決してapplication/xhtml+xmlではありません(こうするとPHPが動かなくなる)。
その上で、HTTPヘッダでMIMEタイプを指定するにはPHP(というか.xhtmlファイル内)にて、header()関数で指定します。
header("Content-type: application/xhtml+xml" );
header()関数はHTTPヘッダを送出するものですので、基本的に全ての出力に先だって、一番最初にコールしなければなりません(moon_nightさんへの返信のスクリプトで言うと、2行目のinclude()する前に挿入します)。

なお、わたしはdocomoユーザではないので、実際に試してはいませんので、うまく行かなかったらすみません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
上記のやり方で問題なくPHPが動きました。
私自身まだまだ勉強不足なことを痛感致しました。

本当にありがとうございました。

お礼日時:2005/10/04 18:44

PHPはサーバサイドで動いているものだから。


PHPからXHTMLを出力するだけでは??

HTMLの場合と同じような気がするのですが。。

逆に考えるとHTMLでPHPを動かそうとしても無理なのでw

そのあたり勘違いされていませんか?

もしくは私が勉強不足か。。
    • good
    • 0

拡張子がXHTMLのファイルでPHPを動かすということですか?



単に
print "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n";

とかをしないで <? でエラーになっているだけとか??

ちなみに背景色を変えるだけならば、.htacessは必要ないのですが・・・

全然具体的なものがないので答えるのが難しいです。
エラーメッセージとか、期待する結果などを具体的に教えていただければ回答しやすいです。

この回答への補足

>拡張子がXHTMLのファイルでPHPを動かすということですか?
はいその通りです。
現在拡張子がhtmlでPHPを動かすことは出来ています。
上記と同じやり方でapacheの設定を行ったのですが、
拡張子XHTMLではPHPが動いてくれません。


少しやり方は違うのですが以下のやり方で行っています。
<?='<?xml version="1.0" encoding="Shift_JIS"?>'."\n"?>

あと.htacessは以下に設定しています。
AddType application/xhtml+xml .xhtm .xhtml

これが原因かと思っているのですが、
これを設定しないとXHTMLとして認識しないのです。

以下が現在動かそうとしているソースです。

<?php
include ("imode/imode.inc");
print "test";
?>
<?='<?xml version="1.0" encoding="Shift_JIS"?>'."\n"?>
<!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/1.1) 1.0//EN" "i-xhtml_4ja_10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" >
<head>
<title>test</title>
</head>
<body bgcolor="<?=_BODY_BGCOLOR?>"text="<?=_BODY_TEXT?>">
<div style="background-color:#ffe8e8">test</div>
<div align="center" style="background-color:#fff4f4">test2</div>
</body>
</html>

これを実行しても、print文のtestの文字は
表示されません。
表示されたXHTMLのソースを確認しても、
上記のソースがそのまま表示されています。

よろしくお願い致します。

補足日時:2005/10/04 11:42
    • good
    • 0

XHTMLやHTMLはクライアントサイドで、PHPはサーバサイドで動く、ってあたりなのかなぁ、なんて思ってみましたがいかがでしょう?



もう少し、状況をかかれるとアドバイスもしやすいかと思います。
どんな環境で、どんなスクリプトを、どんなブラウザ(携帯)でみたら、どんなエラーが出た、とかそんな情報があると回答しやすいです。

この回答への補足

現在既に携帯サイトを運営しているのですが、今現在はhtml内でPHPのスクリプトを埋め込んで運営しています。
しかし文字の背景を変えたいと要望があり、調べるうちにi-modeではXHTMLなら実現できることがわかり、
apacheの設定を変更と、.htacessを使いXHTMLで文字の背景を変えることは出来たのですが、
XHTMLにPHPを埋め込むとまったくPHPのスクリプトとして認識せず、XHTMLのテキストとして認識されてしまいます。
携帯(SH900i)で確認しても、エラーは出ていません。
htmlに埋め込んだ場合は、PHPとして認識し問題なく処理されています。
※XHTMLに埋め込んだPHPのスクリプトは、単純にprint文です。
[環境]
RedhatLinux
apache
PHP
どなたかi-mode対応のXHTML上でPHPを動かしたことのある方がいらっしゃいましたら、アドバイスをお願いいたします。
よろしくお願いいたします。

補足日時:2005/10/03 23:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!