PCからのアクセス時にPHPソースコードを無視する方法を教えてください

このQ&Aのポイント
  • PCからアクセスした場合、ソースコードを無視したい
  • 携帯とPCで同じものを表示させているため、一本化したいと思い、その部分をPHPで作り、ページ内でincludeで読み込ませて使用したいと思っています。
  • PHPソースコードを無視する方法はあるのでしょうか?もしなければ、空白に変換といった形しかないでしょうか?
回答を見る
  • ベストアンサー

PCからアクセスした場合、ソースコードを無視したい

携帯とPCで同じものを表示させているため、一本化したいと思い その部分をPHPで作り、ページ内でincludeで読み込ませて使用したいと思っています。 現在携帯用は絵文字を絵文字変換スクリプトを使い、絵文字を表示させております。 http://www.dspt.net/tools/emoji/ 携帯用ページはPHPで作成しているため、絵文字部分は全て<?php~ ?>で表示させています。 絵文字はPCには対応していないため、PCからのアクセスの場合は<?php~ ?>を無視したい(もしくは排除する)と思っています。 PHPソースコードを無視するといった構文はあるのでしょうか? もしなければ、空白に変換といった形しかないでしょうか? よろしくお願いします。

  • PHP
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

絵文字出力用関数を作って、絵文字部分は、関数を呼び出すように置き換えるのはいかがでしょう? その関数は、引数に絵文字種類指定とし、出力は、アクセス状況フラグによって、絵文字にしたり空文字列にします。 この関数を別phpファイルにしてinclude すれば、全てのphp出力ページに使うことが出来ます。 ex. ーーー emoji.php <?php $access_flag = true; if( /* PCの条件 */ ){ $access_flag = false; } function print_emoji($str_moji){ if( $GLOBALS['access_flag'] ){ /* $str_moji に応じた絵文字出力コード */ } } ?> ーー 出力ページ index.php など <?php include_once('emoji.php'); ?> <html> <body> moji: <?php print_emoji('moji1') ?> </body></html>

fu1111
質問者

お礼

ありがとうございます。 この方法でやってみます!

その他の回答 (2)

  • tomtom963
  • ベストアンサー率19% (19/96)
回答No.2

UAで自前で判断させるか PEARのNet_UserAgent_Mobileを利用して判断させる。

fu1111
質問者

補足

回答有難うございます。 判断させて、if文で分けるしかないのでしょうか? 絵文字1つ1つにif文をつけなければならず面倒だと思い・・・。 もし、以下の全ての<?php~は無視という構文があれば教えてください。

  • warez
  • ベストアンサー率57% (29/50)
回答No.1

直接の回答ではないですが、リンク先のスクリプトには PC 用の絵文字画像があるようなので、これをそのまま表示させればいいのではないでしょうか。

fu1111
質問者

お礼

ご回答有難うございます。 以前その方法を取ろうとして何故か表示できず、PCサイトに絵文字を使うとどうしてもごちゃごちゃしてしまうので、絵文字は使わないことにしたんです。

関連するQ&A

  • auの絵文字コードをphpソース内に記述

    PHPの中でHTMLを記述しstr_replace関数で 例として <!--emoji_1-->に対して<img localsrc="44" />に置換する方法をとっていますが、 実機で確認した場合 Auだけがなぜか (1)<p>絵文字:<!--emoji_1--></p>→変換OK! (2)<input type="submit" value="GO <!--emoji_1-->" /> ↓ <input type="submit" value="GO <img localsrc="44" />" /> サブミットにGo+ソースが文字として表示 (3)<title><!--emoji_1-->タイトルだよ</title> ↓ タイトルタグに記載したのにもかかわらず bodyの一行目に表示されます。 auの公式サイトには記載がなく、これはPHP側での変換処理の問題かと思い困っています。 このような経験のある方やアドバイスがあれば教えてください。

    • 締切済み
    • PHP
  • 携帯で3キャリア対応の絵文字を表示する方法

    http://www.dspt.net/tools/emoji/ ↑の絵文字自動変換スプリクトを使って携帯サイトを作っています。 サイトの解説どおりにやって、ドコモでは問題なく絵文字が表示されました。 しかし、auでは一部の絵文字が「?」と表示されてしまいます。 そしてソフトバンクでは 「お客様の端末からはご利用になれません。(WJ46042E)」 というエラーメッセージが出てしまいます。 phpなどは初めてで原因が全くわかりません。 ネット「WJ46042E」のエラーについて調べてもあまり情報がありません。 何とか1ソースで3キャリア対応の携帯サイトを作りたいのですが、ヒントだけでも教えていただけれたらうれしいです。 もしくは、もっと簡単な変換スプリクトなどがありましたら教えていただければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 絵文字変換スクリプトに使用方法について

    現在、携帯サイトを作成中です。 1ソースで3キャリア対応のサイトを目指しているのですが、 絵文字の互換性のなさにつまずいております。 そこで、絵文字変換スクリプトを使い、絵文字を3キャリアで表示 可能にしようと思ったのですが、使用方法が分かりません。 絵文字変換スクリプトを使用する際、やったことは (1)<http://www.dspt.net/tools/emoji/>を参考にしています。 (2)<http://fs-server.net/index.html>⇒こちらのサーバーを使用しています。 (3)絵文字変換スクリプトをDL (4)画像以外はアスキーモードでサーバーにUL (5)サーバーのTOPディレクトリに「.htaccess」ファイルを作成。 記述内容は、1行目(AddHandler server-parsed html ) 2行目(AddType application/xhtml+xml .html )です。 ローカルでテキスト編集し、サーバー上で「.htaccess」ファイル に変換しました。 (6)絵文字を表示させたいhtmlファイルに<!--#include virtual="/php/emoji/trans.php?emoji=1"-->と記述。 以上のことをした時、絵文字が表示されませんでした。 代わりに、「an error occurred while processing this directive」 と表示されました。 私的にphpの仕組みがよく分かっておらず、原因は.htaccessファイルの 置き方が悪いのかと思っています。 お分かりになる方がいらっしゃったら、絵文字が表記されない原因を 教えて頂ければと思います。 何卒よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 携帯サイト絵文字入りのPHPフォーム

    いつもお世話になっています。 携帯サイト制作をしており、こちら→http://www.dspt.net/tools/emoji/で配布されている絵文字変換スプリクトを利用させていただいています。 さらにこちら→http://magical-form.com/ で配布されているPHPフォームも使用させていただいています。 PHPフォームはhtmlのテンプレートを読み込ませるものなので、フォームのURLはform.phpとなり、そこにアクセスするとテンプレートtemp.htmlが表示されます。 そこでtemp.htmlに絵文字スクリプトのSSIを入れたのですが、form.phpにアクセスしても表示されません。 しかしtemp.htmlにアクセスすると絵文字が表示されているのです。 form.phpにも何か手を加えなければいけないのでしょうか? phpもSSIも初めてで配布先のマニュアルに従っているだけの状態です。 どうかお知恵をお貸し下さい。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • 携帯3キャリア対応絵文字のPHPが上手く作動しません。

    初めまして。 携帯サイトに3キャリア対応の絵文字を使いたく、http://www.dspt.net/tools/emoji/このサイトのPHPを使用しましたが 絵文字を挿入した部分に[an error occurred while processing this directive]というエラーが表示され、正常に絵文字が反映されません。 サーバーはPHP4.0、SSIに対応しているサーバーです(CORESERVER)。 プログラム設置は以下の通りにしました。 public_html / ●●.com / index.html | +-- php(←このphpフォルダはpublic_htmlの下の階層でいいのでしょうか?) | +-- emoji / trans.php emojih.csv emojix.csv | +-- images / .htaccessはindex.htmlと同じ場所に入れ、 AddType application/xhtml+xml .htm .html AddHandler server-parsed html と記載しています。 絵文字記載タグの相対パスは"/php/emoji/trans.php?emoji=絵文字番号" としています(デフォルトのまま)。 Mobile Site Coding&Designという本でも調べたのですが、こちらも同じPHPを使用(説明文もほぼ同じでした)しているのですが なぜか相対パスは"/php/emoji/trans.php?emoji=絵文字番号"となっていました。 また、AddHandler server-parsed htmlの記述の.htaccessもPHPフォルダの中に入れるとありました。 色々なパターンを試しましたがどれも上手くいかず、結局どれが正しいのか分からなくなってしまいました。 お詳しい方がいましたらご教授いただけましたら幸いです。よろしくお願い致します。

    • ベストアンサー
    • PHP
  • 文字列変換について

    質問させてください。 携帯のサイトで各種(Vodafone, au)携帯電話からBBSに感想を入力する画面を作成しました。 入力される文字列は文字、数字、絵文字があります。 入力されたデータはPostgreSQLのDBに格納しています。 その格納された文字列(絵文字含む)を各種携帯で 表示してみたところ、お互いの絵文字が問題に なったため、変換処理を追加しました。 ======================================== $msg = "********";(DBから取得した文字列(絵文字含む)) $emoji = file(emoji_file.txt); for($r=0;$r<count($emoji);$r++){ $string = chop($emoji[$r]); $emoji_data = split("===", $string); if(strstr($msg, $emoji_data[0])){ echo("HIT"); $msg = eregi_replace($emoji_data[0], $emoji_data[1], $msg); } } echo($msg); ====================================== emoji_file.txt $Fr===1 $G-===281 $G.===287 ====================================== 上記のプログラムで、 DBから取得した文字列内にemoji_file.txt にある絵文字データがあれば数値に変換したいと 考えていますが、"HIT"が表示されるにも かかわらず変換されずに表示されます。 これは、"$G."などVodafoneの絵文字が 普通の文字列と違うからでしょうか? 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 携帯サイトを作っています。

    携帯サイトを作っています。 http://www.dspt.net/tools/emoji/ 上記のサイトにある3キャリア対応の絵文字変換スプリクトを使っており、実際に絵文字の表示葉問題なくできます。 しかし、絵文字を表示すると、 w3c mobileOK checker <http://validator.w3.org/mobile/> において、携帯サイトとして認識される度合いが60%以上も下がってしまいます。 色々原因をさぐってみたところ、上記したスプリクトを作動させるために、 .htaccessファイルに AddHandler server-parsed html と記述してアップロードしているのですが、これが原因だということがわかりました。 この記述をしない、または他の記述で代替する、ssiをphpに書き換えるなどの方法は無いでしょうか? phpなど全くの無知で、絵文字の表示も上記サイトのマニュアルどおりに設置してようやく出来たという状況です。 何卒よいお知恵をいただきますようよろしくお願いします。

    • ベストアンサー
    • PHP
  • 現在、PHPにて携帯サイトを作成しています。

    現在、PHPにて携帯サイトを作成しています。 ほぼ完成しているのですが、絵文字処理にてつまづいています。 3キャリアに対しそれぞれの絵文字コードを割り振るスクリプト(下記URL参照)を設置しました。 http://dspt.blog59.fc2.com/blog-entry-57.html PHPファイルの、絵文字を表示させたい部分に <?php emoji('1');?> といった型で 独自のコードを挿入するだけで、各キャリア対応の絵文字が表示されるスクリプトです。 設置も動作テストも正常に出来ました。 ですが、私の場合、PHPファイルの「print <<<EOD  ・・・・ EOD;」内に、 絵文字を表示させたいのです・ そこに、<?php emoji('1');?>といったソースを表示させると、ソースがそのまま表示されてしまいます。 何か対処法はありませんでしょうか? お分かりになる方、アドバイス頂けるとうれしいです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 携帯サイトでの絵文字対応BBSの作成で絵文字の変換に困っています。

    PHPとMySQLを使って絵文字対応の携帯サイト用BBSを構築しています。データベースに登録した絵文字付のコメントを取得すると、絵文字部分がうまく表示されずに困っています。 現在、携帯サイト用の絵文字対応BBSを作成しています。フォームから絵文字付のコメントを入力して、それをDBに登録、または登録されている絵文字付コメントをDBから取得するというものです。 DBに登録する際に入力した絵文字を「<emoji=1,,,>」のような形に変換してeucJP-winでDBに登録します。 出力する際には「<emoji=1,,>」を対応する絵文字に変換(事前に変換表を作成しました。)して画面に出力します。 その際、直接ソースに記述した<emoji=1,,>は対応する絵文字に変換されて表示されるのですが、DBから取得した絵文字付コメント(例:こんにちは<emoji=1,,>)は対応する絵文字に変換されない状態になっており困っています。 ob_start();                     :                     : <?php $mysql=new MySQL; $sql="SELECT no,title,imp FROM s001osirase ORDER BY no DESC LIMIT 0,3"; $mysql->query($sql); while($row=$mysql->fetch()){ $no=$row['no']; $title=$row['title']; $title=mb_convert_encoding($title,'SJIS-win',mb_internal_encoding()); $imp=$row['imp']; if($imp=="yimp"){ echo '<div style="color:#FF0000;font-size:xx-small;">[重要</div>'; echo '<div style="font-size:xx-small;"><a href="/mobile/s001/bbs/bbs_show.php?no='.$no.'">'.$title.'</a></div>'; }else{ echo '<div style="color:#FF0000;font-size:xx-small;">[普通]</div>'; echo '<div style="font-size:xx-small;"><a href="/mobile/s001/bbs/bbs_show.php?no='.$no.'">'.$title.'</a></div>'; } } ?>                 : //内部文字コード(eucJP-win)をSJIS-winに変換する関数 outpue_encode(); //<emoji=1,,,>部分を絵文字に変換してバッファを出力する関数 emoji_output(); emoji_output関数は以下のとおりです。 function emoji_output(){ $output_str=ob_get_contents(); ob_end_clean(); header('Content-Type: application/xhtml+xml;'); $output_str=preg_replace_callback('/<emoji=([0-9,]+)>/','emoji_output_changea',$output_str); echo $output_str; } コールバック関数emoji_output_changeaで$output_str内の<emoji=1,,,>を絵文字に変換しています。 ob_start()を使ってバッファにためて、emoji_outputで<emoji=1,,>を一括でpreg_replace_call関数を使って絵文字に変換して出力しています。この関数は問題なく動いていると思います。 DBから取得した記事が格納された変数$titleのみ変換されていないように思います。 考えられる原因がお分かりの方、いらっしゃいましたらよろしくお願いします。 わかりづらい文章で申し訳ありません。

    • ベストアンサー
    • PHP
  • ヒアドキュメントの中で関数を呼び出す方法

    すべての携帯コンテンツをphpで下記のように作成しており、絵文字を使いたいと思いますが、ここの絵文字変換プログラムを多少変更してPHP内で<?php emoji(絵文字番号)>って呼び出しできるようになったのですが、すでにあるPHPコンテンツはヒアドキュメントからecho出力しており、ヒアドキュメント内から関数(絵文字番号)って呼び出すことができません。何かいいアドバイスか他の処理方法をできれば簡単にコードを書いて教えていただけると幸いです。お願いします。 関数----------------- 省略 function emoji($data) { global $agent,$emoji_array; if(preg_match("/[0-9]{1,3}/", $data) && is_numeric($data) && 0 < $data && $data < 253) { switch(mobile($agent)){ case "i"; $put = $emoji_array[$data][1]; break; case "e"; if (preg_match("/[^0-9]/", $emoji_array[$data][2])) { $put = $emoji_array[$data][2]; } else { $put = "<img localsrc=\"".$emoji_array[$data][2]."\" />"; } break; case "s"; if (preg_match("/^[A-Z]{1}?/", $emoji_array[$data][3])) { $put = "\x1B\$".$emoji_array[$data][3]."\x0F"; } else { $put = $emoji_array[$data][3]; } break; case "p"; $put = "[PCでは絵文字は表示されません]"; break; } echo $put; } else { echo "[Error!]\n"; } } ----------------------------------------- &contents = <<<HTML <html> <head> </head> <body> コンテンツコンテンツ<br> →ここで関数(絵文字番号)って呼び出したい! </body> </heml> HTML;

    • 締切済み
    • PHP

専門家に質問してみよう