レンタルサーバーの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.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.4
- 回答日時:
>ファーストサーバーの場合、プログラムの1行目に
>#! /usr/bin/php
>と書かなきゃいけないようなのでこれが丸見えになって困っていました。
CGI動作ですね。Perlスクリプトでも同じですが、最初に起動されるスクリプトの先頭にあればいいので、includeやrequireされる側には不要です。includeされる側は拡張子は.cgiや.phpに限定されないですしね。
No.1
- 回答日時:
includeされる側(=外部ファイル側)の <?php ~ ?> の外に文字を書くということは、「これらの文字列をそのままHTMLとして取り込んでね!」と宣言しているような状態です。
よって、そのまま表示されるのが自然な動作です。もしこれらの表示をさせたくないのであれば、
・外部ファイルから該当する部分を削除する。
・または、HTML形式のコメントアウトを施す。
といった対応になると思います。
なるほど。
「aaa」「bbb」を受け取っても、いったん変数内に入れて削除とかできないかなと思っていましたが無理なんですね。
どの専門書にも <?php ~ ?> の外に文字を書くなとは書いてないし不思議に思っていました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アップロード画像数でCSSを分けることに成功したのですが、画像の横に文字を並べることが出来ません。 3 2023/07/28 17:16
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- PHP PHP MySql ページング 2 2022/09/20 06:38
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- WordPress(ワードプレス) wordpressでphpを読み込みたい 1 2022/10/30 23:40
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- PHP 文字列を段落で分ける方法を教えて下さい。 2 2023/03/09 10:03
- PHP phpでアクセスカウンターの数値の割合でリンク先を変更したい 1 2022/09/16 11:47
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpのソースコードが、そのまま...
-
エラーundefined function sqli...
-
空メールからの標準入力が受け...
-
MySQLの配置が変わったため、db...
-
シェルスクリプトからphpファイ...
-
別PHPファイルに変数を渡す
-
php 完了画面の送信メールのコ...
-
TCPDFについて
-
CFileDialogの最初のディレクト...
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
phpのftp_get()でエラーが出ます。
-
phpでget_headers()が使えない?
-
Content-Typeが機能していない?
-
awsにApacheとPHPを入れて、何...
-
XAMPPでApacheが起動しなくなり...
-
PHPのif文でその処理を途中で抜...
-
ワードプレスサイト PHP8.0.25...
-
拡張子php画像をjpg画像等に変...
-
mb_send_mail関数が利用出来ない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別ファイルの変数を呼び出した...
-
MySQLの配置が変わったため、db...
-
入力フォームの空白や改行を制...
-
別PHPファイルに変数を渡す
-
シェルスクリプトからphpファイ...
-
phpのソースコードが、そのまま...
-
include先でのinclude元の変数...
-
phpinfo.phpを開くとファイルの...
-
拡張子php画像をbmp画像等に変...
-
PHPから別なPHPへ移動(?)する方法
-
PerlからPHPの呼び出しについて
-
1行目の#! "C:\\xampp\\php\\p...
-
パスワード等が記述されているp...
-
ローカルでは動くがサーバーで...
-
PHPの拡張子を見せない方法
-
#!/usr/local/bin/phpはどこに...
-
PHP(.php)及びJavascrpit(.j...
-
.htaccessの設定で,auto_prepe...
-
.phpのファイルを開けない!
-
拡張子なしのファイルを稼働さ...
おすすめ情報