• ベストアンサー

includeすると?が入る

win2000、PHP5.3.0にて、includeをすると?が入ってしまいます。 具体的には -- a.php -- <?PHP print "A"; include 'b.php'; print "B"; ?> -- b.php -- C <?PHP print "D"; ?> E -- 結果 -- A?C DE B ブラウザ上ではこの?が見えないのですが、ソース上ではあります。 この?を何とかしたいのですが、これは何かの設定ですか?仕様ですか?不具合ですか?

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

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

文字コードはなんでしょう? UTFでBOMが出力されているような気がしますが・・・。

moon_night
質問者

お礼

UTF-8Nで保存したところ問題は解決しました。 こんな問題があるのですね。勉強になりました。 ありがとうございました。

moon_night
質問者

補足

UTF-8です。 これは勝手についてしまうのもなのでしょうか。

その他の回答 (1)

noname#119957
noname#119957
回答No.2

ブラウザ上ではこの?が見えないのですが、 ソース上ではあります。 >>結果はブラウザでなく何で見ているのでしょうか?

moon_night
質問者

補足

基本的にはブラウザで見ています。 ブラウザで見るとよく分からない改行が増えます。 ソースはterapadで見ています。

関連するQ&A

  • インクルード元を知りたい

    PHP5.2.4を使用しています。 [a.php] <?php include("b.php"); include("c.php"); $c = new classC(); [b.php] <?php class classB { } [c.php] <?php class classC { public function __construct() { $c = new classB();//←b.phpファイルがどこでインクルードされたか知りたい } } という3つのファイルがあり、a.phpにアクセスするとします。 c.phpファイルのコンストラクタでb.phpファイルにあるclassBを生成していますが、 これはa.phpファイルにおいて先にinclude("b.php");があるので c.phpファイル内でもclassBを認識できると思います。 そこでc.phpファイル内でb.phpファイルがどこでインクルードされたか(この例ではa.phpファイル) 調べる方法なり関数というのはあるのでしょうか?

    • ベストアンサー
    • PHP
  • fputsで書き込みを行う際に、includeを使用したいです。

    phpの初心者です。 どうぞよろしくお願いします。 ユーザーがクリックしただけでページが生成されていくといったような サイトを現在作成しています。 以下、構造です。 index.php regist.php footer.inc page(dir)---a(dir)-------index.php       └b(dir)-------index.php       └c(dir)-------index.php 動作としては、index.php(TOP階層)でリンクをクリックするとregist.phpにジャンプし、 regist.phpのプログラムの中で、page(dir)の中にa,b,c,d,e…とディレクトリが 自動生成されて、中にindex.phpファイルを生成します。 regist.phpの最後でheader("Location:")を使用し、生成されたページに自動的にジャンプします。 生成されたページのフッターに今までクリックされたリンクという紹介のようなものがあります。 そこの記述が regist.php内の記述/////////////////// ob_start(); include("footer.inc"); $footer = ob_get_contents(); ob_end_clean(); fputs($fp, "$footer"); footer.inc内の記述/////////////////// <?php $arr = scandir('./page/', 1); foreach($arr as $key => $dir){ //リンク名を日本語に変換 $dir = str_replace("http://".$domein."/page", "http://".$domein."/page/", "$dir"); print "<a href=\"http://".$domein."/page/".$dir."/\">$dir_url</a> \n"; } ?> 上記のようなプログラムですと、a,b,c,d…x,y,zと順番にディレクトリとページが生成されていった場合に aの中のindex.phpではリンクなし。 bの中のindex.phpではaへのリンク。 cの中のindex.phpではaとbへのリンク。 dの中のindex.phpではaとbとcへのリンク。 eの中のindex.phpではaとbとcとdへのリンク。 一つずつリンクが増えていくようになってしまってます。 これを、自動生成されたページでは、常にクリックされたすべてのリンクが出るようなものにしたいというのが希望です。 aの中のindex.phpではaとbとcとdへのリンク。 bの中のindex.phpではaとbとcとdへのリンク。 cの中のindex.phpではaとbとcとdへのリンク。 dの中のindex.phpではaとbとcとdへのリンク。 eの中のindex.phpではaとbとcとdへのリンク。 なのでregist.phpの記述を… 修正後:regist.php内の記述/////////////////// fputs($fp, "<?php include(\"../../footer.inc\"); ?>"); こちらですと、読み込み形式になり常に新しい情報が入るかな?と思い試したのですが思うように動きません。 修正前:regist.php内の記述/////////////////// ob_start(); include("footer.inc"); $footer = ob_get_contents(); ob_end_clean(); fputs($fp, "$footer"); 上記ですと、テキストを書き込む形になりますので、常に新しい情報ではありません…。 分かる方、ご回答頂けますと幸いです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • テーブル内でのinclude

    test.php内にテーブルがあり、1行目でa.phpをincludeし、2行目でb.phpをincludeしています。 <test.php内の仕組み> test.phpではa.php内のボタンでb.phpをincludeする仕組み =「a.php内のフォームのsubmitで自分自身にb.phpのファイル名を渡している」 ●実現したいこと b.phpを開くときにはa.phpを再度読み出し直したいです。 具体的には a.php内のボタンを押してb.phpのファイル名をpost(post先はtest.php)してb.phpがincludeされたときにb.phpからa.phpがincludeされる。 【a.phpの再読込が必要な理由】 a.phpはDBからの表示があり、ボタンを押した際にDBへの書込みがあります。その情報をリフレッシュさせるためです。 ●試してみたこと (1)<試し> test.php内の<body onload=~>で再度test.phpを読み出した。  ⇒無限ループになってしまいました。   a.phpには<body>無いので同様の動作ができません。   他に動作させる方法があれば問題ないですが・・・。 このような状況です。できればフレームでは実行したくないと考えています よい方法あれば教えてください。

    • 締切済み
    • PHP
  • PHPのinclude_pathについて

    以下はPEARでExcelファイルを作成し、ダウンロードするプログラムです。 <?php require_once("Spreadsheet/Excel/Writer.php"); $workbook = new Spreadsheet_Excel_Writer('sample3-1.xls'); $worksheet =& $workbook->addWorksheet('サンプル'); $workbook->close(); print('<html>'); print('<head>'); print('<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />'); print('</head>'); print('<body>'); print('<p><a href="./sample3-1.xls">Excelファイル</a></p>'); print('</body></html>'); ?> このプログラムを実行すると、 Warning: require_once(Spreadsheet/Excel/Writer.php) [function.require-once]: failed to open stream: No such file or directory in C:\Inetpub\wwwroot\Test\src\excelsample.php on line 2 Fatal error: require_once() [function.require]: Failed opening required 'Spreadsheet/Excel/Writer.php' (include_path='.;C:\php5\pear') in C:\Inetpub\wwwroot\Test\src\excelsample.php on line 2 というエラーメッセージが出ます。 php.iniには、PEARのパッケージをインストールした際に ;***** Added by go-pear include_path=".;C:\php-5.2.17-Win32-VC6-x86\pear" ;***** と記述されているにも関わらず、エラーメッセージのpathはinclude_path='.;C:\php5\pear'となっており、原因がわかりません。 php.iniはC:\WINDOWSの直下に置いてあります。 PHPのバージョンはphp-5.2.17-Win32-VC6-x86で、Cドライブの直下にインストールしています。 WebサーバーはIISです。 eclipseを使っており、バージョン?はpleiades-e3.6-php_20110326です。 また、phpinfoのinclude_pathはLocalとMasterの両方が.;C:\php5\pearとなっています…。 Configuration File (php.ini) Path C:\WINDOWS Loaded Configuration File C:\WINDOWS\php.ini この2つはこの様になっており、これは2つの場所は一致していないといけないのでしょうか? 解決手段がまったくわかりません。 何かこのエラーについてわかることがあれば教えていただけませんか?

    • 締切済み
    • PHP
  • includeで読み込む対象を選べるようにする

    includeで読み込む対象をセレクトメニューで選べるようにし、さらにその先にもセレクトメニューがあり選べるようするというのは不可能でしょうか? 最初に(a.html、b.html、c.html、d.html)のいずれかを選択、読み込み。次にa.htmlを選んだ場合は(a_1.html、a_2.html、a_3.html、a_4.html)のいずれかを選択、読み込むといった内容です。 PHP初心者です。どうかご指導宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • includeされたphpの中でincludeを使用No.2

    http://oshiete1.goo.ne.jp/qa1156379.html こちらの方が質問しているものと同じ様なことなのですが、 簡単に構造を説明します。 a.php ->データを入力 b.phpを呼び出す b.php ->与えられたデータの入力チェック c.phpを呼び出す c.php ->データをDBに登録後、a.phpを表示 このとき、a.phpで登録ボタンを押すと、白紙が帰ってきてしまいます。 b.phpは呼び出しているようなのですが、b.php内のinclude_once("c.php"); で止まってしまっているように見えます。 アドバイスをお願いします。

    • ベストアンサー
    • PHP
  • PHPの@includeとは?

    現在PHPのソース解析を行っております。 初心者なのですが、実際動いている本格的なPHPソースを解析して勉強するように言われております。 その中で、@includeというものが度々出てくるのですが、普通のincludeとは何が違うのでしょうか? 調べてみましたが、http://php.net/manual/ja/function.include.phpこちらではよくわかりませんでした。 @が付くと具体的にどのようなことが起こるのでしょうか? よろしくお願いいたします。

  • includeコマンドについて

    CGIより書き出されたHTMLから <!--#include virtual="・・・" -->のようにincludeコマンドは使えるのでしょうか? 具体的にはこのコマンドでさらにCGIを呼び出したいのです。CGIを呼び出してその中からさらにCGIを呼び出したいみたいに。 print << "END_OF_DOC"; のようにヒアドキュメントの中に書き込んだのですが駄目でした。 ソースを見ると、<!--#include virtual="・・・" -->はそのままソースの中に入ったままでした。 うまく説明できないのですがこれでもわかる方お願いします。

    • ベストアンサー
    • CGI
  • include_onceで呼び出したPHPファイル

    PHPでサイトを組んでいるのですが、include_onceで以下のようにPHPの各ファイルを呼び出して実行しているのですがうまくいきません。 <?php //レンタルサーバーのcronを利用して、定期的に走らせるコードです。 include_once "example_a.php"; include_once "example_b.php"; include_once "example_c.php"; ?> 各ファイルは、RSSで読み込んだデータをMySQLに格納するプログラムです。 個別で各ファイルを実行すると正しい結果となりますが上記のようなプログラムでまとめて実行するとexample_a.phpは正しい結果となりますが、example_b.php、example_c.phpは正しく処理されません。 原因として考えられるものがあれば、教えていただきたいと思います。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • include_pathについて。

    PHP 5.2以上のバージョンの話として質問をさせて頂きます。 (ローカルではWindows版XAMPPを使用。リモートはLinuxサーバー。) ----- <ファイルの位置関係> imgディレクトリ --- C.jpg (画像ファイル) mainディレクトリ --- A.php sub ディレクトリ --- funcディレクトリ --- B.php (img、main、subディレクトリは3つとも同階層) //------- (A.phpの記述) require_once '../sub/func/B.php'; //------- (B.phpの記述) echo '<img src="C.jpgのパス">'; // ←■画像Cを表示したい■ //★どう表示されるかテスト★ echo dirname(__FILE__) ;   //----- このような状況で、 A.phpにアクセスすると、★テスト★の所は、 ~/sub/func   //←のように表示される。 // つまりこれは、__FILE__ は、 // A.phpではなく、B.phpを指している。(?) と、このような時、B.phpの中で、 C画像の相対パスは、どう書いたらよろしいのでしょうか? A.phpから見た、C画像の相対パスで書いたらいい? それとも、B.phpから見たソレでしょうか? phpinfo()でinclude_pathの項目を調べると、 .:/usr/local/lib/php/~ のように書かれています。(デフォルトのままです。)

    • ベストアンサー
    • PHP

専門家に質問してみよう