レンタルサーバーのPHP5利用者です。
include() や require() 等で外部の関数を読み込む場合、
<?php ~ ?> の外側に文字があるとそれが変なところで表示されてしまいます。例えば、
<呼び出し側>
include(gaibu.php);
$msg = write_fc();
print $msg;
<外部ファイル側>
aaa
<?php
function write_fc(){
return 'Hello';
}
?>
bbb
<結果>
aaabbbHello
といった感じなのですが…
この「aaa」「bbb」をさせない方法があれば教えてください。
それとも<?php ~ ?> の外側に文字をかくこと自体非常識なのでしょうか。
お詳しい方、よろしくお願いいたします。
No.3
- 回答日時:
できるかできないかと言われれば、できます。
呼び出し側で出力のバッファリング処理というのをすればよいでしょう。
ただ、インクルードするのに無駄な出力があるのはどうかとおもうので
やらない方がだとうかなぁと。
<?
ob_start();
include "gaibu.php";
ob_end_clean();
$msg = write_fc();
print $msg;
?>
No.2ベストアンサー
- 回答日時:
>この「aaa」「bbb」をさせない方法があれば教えてください。
質問内容のような書き方をしているかぎり、表示させない方法はありません
>それとも<?php ~ ?> の外側に文字をかくこと自体非常識なのでしょうか。
個人で趣味レベルでのプログラムならば自由ですが、実際にプログラムを仕事としている人たちの中では非常識な記述方法です
とりあえずの解決方法としては、function類は、function類だけを記述したファイルを作りましょう
実際に画面として表示させるところでincludeさせて処理をするという方法。
こうやっておくと、HTML部分とfunction部分を分離することが出来ます。
この方法が一般的と言うわけではありませんが、HTMLとphpのロジック部分をごちゃ混ぜにするよりはマシです。
<外部ファイル側>
------------func.php
<?php
function write_fc(){
return 'Hello';
}
function FooFunc(){
return 'foo';
}
function HogeFunc(){
return 'hoge';
}
?>
--------------------
--------------------aaabbb.php
<?php
include(func.php);
$foo = FooFunc();
$hoge = HogeFunc();
?>
aaa
<?php print $foo; ?>
bbb
<?php print $hoge; ?>
--------------------
実行結果
aaaFoobbbHoge
--------------------index.php
<?php
include(func.php);
$msg = write_fc();
print $msg;
?>
--------------------
実行結果
Hello
やっぱ <?php ~ ?> の外に文字を書いちゃダメなんですね。
ファーストサーバーの場合、プログラムの1行目に
#! /usr/bin/php
と書かなきゃいけないようなのでこれが丸見えになって困っていました。
でも外部ファイル側には書かなくても動作するみたいなのでなんとかなりそうです。
ありがとうございました。
No.1
- 回答日時:
includeされる側(=外部ファイル側)の <?php ~ ?> の外に文字を書くということは、「これらの文字列をそのままHTMLとして取り込んでね!」と宣言しているような状態です。
よって、そのまま表示されるのが自然な動作です。もしこれらの表示をさせたくないのであれば、
・外部ファイルから該当する部分を削除する。
・または、HTML形式のコメントアウトを施す。
といった対応になると思います。
なるほど。
「aaa」「bbb」を受け取っても、いったん変数内に入れて削除とかできないかなと思っていましたが無理なんですね。
どの専門書にも <?php ~ ?> の外に文字を書くなとは書いてないし不思議に思っていました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
fputcsvで保存せず、そのまま出...
-
PHPから別なPHPへ移動(?)する方法
-
ssiをhtmlで動作させる為、htac...
-
別ファイルの変数を呼び出した...
-
#!/usr/local/bin/phpはどこに...
-
youtubeに音声のみのmp4ファイ...
-
CFileDialogの最初のディレクト...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
php エラー
-
PHPパーミッションについて
-
「クラス関数」「メンバ関数」...
-
.phpファイルが、表示されない
-
AccessのDoCmd.SendObjectについて
-
PHPで新しいウインドウで開く命...
-
phpでメール送信できません 原...
-
Ethnaの基本設定について
-
pictureboxに表示した画像のフ...
-
phpのクラスにて別ファイルの変...
-
SEO 動的・静的ページの説明に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの変数を呼び出した...
-
include先でのinclude元の変数...
-
別PHPファイルに変数を渡す
-
シェルスクリプトからphpファイ...
-
phpinfo.phpを開くとファイルの...
-
phpの開始タグ及び終了タグ外で...
-
パスワード等が記述されているp...
-
phpのプログラムエラー
-
拡張子なしのファイルを稼働さ...
-
a href リンクタグでだけで 送...
-
1行目の#! "C:\\xampp\\php\\p...
-
codeigniterでcron実行したい
-
PHP(.php)及びJavascrpit(.j...
-
こちらはただの直列処理ですか?
-
phpのソースコードが、そのまま...
-
リクエストURIによってHTML表示...
-
PEARのmimeDecodeでメール解析...
-
入力フォームの空白や改行を制...
-
拡張子php画像をbmp画像等に変...
-
#!/usr/local/bin/phpはどこに...
おすすめ情報