• ベストアンサー

i-mode対応XHTMLでPHPを動かすには?

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

質問者が選んだベストアンサー

  • ベストアンサー
  • satoh
  • ベストアンサー率77% (17/22)
回答No.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ユーザではないので、実際に試してはいませんので、うまく行かなかったらすみません。

zyuza
質問者

お礼

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

その他の回答 (3)

回答No.3

PHPはサーバサイドで動いているものだから。。 PHPからXHTMLを出力するだけでは?? HTMLの場合と同じような気がするのですが。。 逆に考えるとHTMLでPHPを動かそうとしても無理なのでw そのあたり勘違いされていませんか? もしくは私が勉強不足か。。

  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.2

拡張子がXHTMLのファイルでPHPを動かすということですか? 単に print "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n"; とかをしないで <? でエラーになっているだけとか?? ちなみに背景色を変えるだけならば、.htacessは必要ないのですが・・・ 全然具体的なものがないので答えるのが難しいです。 エラーメッセージとか、期待する結果などを具体的に教えていただければ回答しやすいです。

zyuza
質問者

補足

>拡張子が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のソースを確認しても、 上記のソースがそのまま表示されています。 よろしくお願い致します。

  • satoh
  • ベストアンサー率77% (17/22)
回答No.1

XHTMLやHTMLはクライアントサイドで、PHPはサーバサイドで動く、ってあたりなのかなぁ、なんて思ってみましたがいかがでしょう? もう少し、状況をかかれるとアドバイスもしやすいかと思います。 どんな環境で、どんなスクリプトを、どんなブラウザ(携帯)でみたら、どんなエラーが出た、とかそんな情報があると回答しやすいです。

zyuza
質問者

補足

現在既に携帯サイトを運営しているのですが、今現在は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を動かしたことのある方がいらっしゃいましたら、アドバイスをお願いいたします。 よろしくお願いいたします。

関連するQ&A

専門家に質問してみよう