- ベストアンサー
ブラウザ上に出せますか!?
noname#244856の回答
- ベストアンサー
PHPはどうやってインストールされましたか?XAMPPを使われたのであれば、以下のようにフォルダとURLが対応します。 【フォルダ】 C:\xampp\htdocs\ 【URL】 http://localhost/ 例: C:\xampp\htdocs\a\b\test.php → http://localhost/a/b/test.php もちろんXAMPPコントロールパネルからApacheを起動している前提です。但し <?php echo (float)'15foo', PHP_EOL; echo (float)'15.33foo', PHP_EOL; echo (float)'1e2foo', PHP_EOL; echo (float)'foo', PHP_EOL; これだとそのままではHTMLとして認識されるので、ブラウザ上では改行が反映されません。意図したように改行させたければ以下のようにする必要があります。 【選択肢A: <br>を書く】 <?php echo (float)'15foo<br>', PHP_EOL; echo (float)'15.33foo<br>', PHP_EOL; echo (float)'1e2foo<br>', PHP_EOL; echo (float)'foo<br>', PHP_EOL; 【選択肢B: <pre></pre>で囲む】 <?php echo '<pre>'; echo (float)'15foo', PHP_EOL; echo (float)'15.33foo', PHP_EOL; echo (float)'1e2foo', PHP_EOL; echo (float)'foo', PHP_EOL; echo '</pre>'; 【選択肢C: HTMLではなくテキストとして認識させる】 <?php header('Content-Type: text/plain'); echo (float)'15foo', PHP_EOL; echo (float)'15.33foo', PHP_EOL; echo (float)'1e2foo', PHP_EOL; echo (float)'foo', PHP_EOL; 【A】や【B】はContent-Typeを設定していないので、Apacheで規定されているデフォルトのContent-Typeが使用されます。何もいじっていなければHTMLを意味する「text/html」が適用されるので header('Content-Type: text/html'); としていることと同じになりますね。しかし日本語を扱う場合にはこれだと文字化けする恐れがあるので、自前で header('Content-Type: text/html; charset=utf-8'); としてブラウザにUTF-8であることを認識させたほうが望ましいです。【C】の場合はHTMLではなくテキストですがこれも同様に header('Content-Type: text/plain; charset=utf-8'); となりますね。
関連するQ&A
- echo (float)'1e2foo', PHP
echo (float)'15foo', PHP_EOL; echo (float)'15.33foo', PHP_EOL; echo (float)'1e2foo', PHP_EOL; echo (float)'foo', PHP_EOL; 以上参考書を転記しました 試しに echo '<pre>'; echo (float)'15', PHP_EOL; echo (float)'15.33', PHP_EOL; echo (float)'1e2', PHP_EOL; echo (float)'', PHP_EOL; echo '</pre>'; とfooを省きました、二つのプログラムの実行結果は 以下ですがと同じです。 15 15.33 100 0 一つ目の質問です。 なぜ、参考書はfooをあえて入れてのでしょうか? 二つ目の質問です。 1e2を1e3にすると結果が1000になります。 1eて何ですか!? 宜しくお願いします。
- 締切済み
- PHP
- echo $a++とecho ++$a,の違いは?
<?php $a = 10; echo $a++,PHP_EOL; ------------------------------ <?php $a = 10; echo ++$a, PHP_EOL; ------------------------------- 以上の計算結果は同じですか? もし同じでしたら、また悩みが増えます。 よろしくお願いします。
- ベストアンサー
- PHP
- どうしたら確認ができますか!?
以下参考書をそまま入力しました。 ] --------------------------------------------------- 論理積と論理和では、2通りの表記方法がありますが、これは演算子の優先順位(注6)が違います。 (注意6)優先順位については3.2.3(P80)を参照 <?php $flag and foo(); if(isset($argv[1] && $argv[1] { echo '与えられた引数は真です',PHP_EOL; } else{ echo '引数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL; } この列では、引数が与えられているかをまずチェックし、与えられている場合はそれが真である かを調べます。論理演算子では、評価結果がわかった時点で演算結果を返します。これを短絡評価 といいます。短絡評価されるため、最初のisset($argv[1])が為である場合、次の$argv[1]の評価 は一切行われません(もし評価されてしまったならば、NOtic:Undefined offset:1となってしまい ます)。 たとえば、次の例では、$flagが為の場合では、関数foo()が呼ばれることはありません。 <?php $flag and foo(); ----------------------------------------------------------- 以上ですが、 これって、どうしたら確認ができますか!? xamppは働いています。 HTMLで試しましたがParseエラーがでました。 <html> <head> <meta "charset=utf-8" /> <title>論理演算子</title> </head> <body> <?php if(isset($argv[1] && $argv[1] { echo '与えられた引数は真です',PHP_EOL; } else{ echo '引く数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL; } ?> </body> </html> 以上の実行結果は 以下です。 Parse error: syntax error, unexpected '&&' (T_BOOLEAN_AND), expecting ',' or ')' in C:\xampp\htdocs\study.localhost\php.php on line 10 以上です。 よろしくお願いします。
- ベストアンサー
- PHP
- $argv[1]) && $argv[1]・同じ
以下のプログラムですが! <html> <head> <meta "charset=utf-8" /> <title>論理演算子</title> </head> <body> <?php if(isset($argv[1]) && $argv[1]) { echo '与えられた引数は真です',PHP_EOL; } else{ echo '引く数が与えられていないか、与えられた引数が真ではありません' ,PHP_EOL; } ?> </body> </html> 以上のプログラムの実行結果は以下となりました。 引く数が与えられていないか、与えられた引数が真ではありません 以上の実行結果は”真でありません”と出ています。 $argv[1]) && $argv[1]・・・&&は理論積の、両辺は同じなのでtrueならばtrueの真だから、 "与えられた引数は真です"と出るのではないんでしょうか!? 以上よろしくお願いします。
- ベストアンサー
- PHP
- %php stringcast.php 100
<?php // stringcast.php if (!isset($argv[1])) { exit; } $num = $argv[1]; if ($num == 100) { echo "num is 100", PHP_EOL; } else { echo "num is not 100",PHP_EOL; } このプログラムを %php stringcast.php 100のように実行すると、引数の100は PHPには文字列型として渡されます。・・・ 以上参考書にあります。 作業の流れが分かりません。 %php stringcast.php 100とは!何のことなのでしょうか!? 以上宜しくお願いします。
- ベストアンサー
- PHP
- プログラムがすべて終わってからブラウザで見えるのか?
PHPでいろいろ作ってる初心者です。 PHPのプログラムの最初の方で、HTMLのヘッダーやタイトルなんかを出力する部分があるとします。 その後にいろいろデータを読んで計算して記述内容を決める部分があるとします。 このような場合、見てる人はこの計算が終わるまで、タイトル(つまり計算前にechoなどで出力した部分)はブラウザでは見えないのでしょうか? 以上よろしくお願いします。
- ベストアンサー
- PHP
- phpコールバック関数について
php初心者のものですが、コールバック関数(可変関数)についての質問です。 //引数の与えらえられた名前をもつ関数が存在すれば呼び出すための関数 function func_caller($name)(2) { if (function_exists($name)) { (3) $name(); //可変換数をして関数の呼び出し } } function foo() { echo 'foo call', PHP_EOL; } func_caller('foo'); //foo called(1) とあるのですが (1)の関数が(2)に呼ばれて$nameはfooが入ってて (3)が評価されまでわかるのですが次にどうなっていくのかわかりません。 どなたかわかる方いらっしゃいましたらどうか教えていただけないでしょうか? 何卒よろしくお願い致します。
- ベストアンサー
- PHP
- エラーが出ないようにしたいのですが?
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php echo'テストプログラム開始',PHP_EOL; $ret1 = array_reverse(); $ret2 = array_reverse(1); echo'テストプログラム終了',PHP_EOL; ?> </body> </html> 以上のプログラムを実行すると、 以下のエラーが出るように組まれたプログラムです。 エラーが出ないプログラムにするには、どんなプログラムを組めばできますか!? 早々ですが^^ 今年もよろしくお願いいたします。 テストプログラム開始 Warning: array_reverse() expects at least 1 parameter, 0 given in C:\xampp\htdocs\study.localhost\E_WARNING.php on line 9 Warning: array_reverse() expects parameter 1 to be array, integer given in C:\xampp\htdocs\study.localhost\E_WARNING.php on line 10 テストプログラム終了
- ベストアンサー
- PHP
- = $argv[1];はどんな働きがありますか!?
<?php // stringcast.php if (!isset($argv[1])) { exit; } $num = $argv[1]; if ($num == 100) { ←(1) echo "num is 100", PHP_EOL; } else { echo "num is not 100",PHP_EOL; } このプログラムを %php stringcast.php100 のように実行する、引数の100はPHP文字列型として渡されます。 したがって、(1)の比較では、文字列"100"の入って変数$numと、整数100が比較されるため、 文字列"100"は整列100へとキャストされまた後、比較演算が実行されます。 今回は、動作の結果に違いはありませんが、ここで整数同士を比較しているつもりでも実際には 文字列を整数の比較が行われ、キャストが発生している、という挙動を把握しているか、していない かではなく大きな違いがあります。引数とし期待している値の型が決まっている場合、明示的にキャ ストを行い、厳密な比較演算子(===など)を用いるほうが安全です。 -------------------------------------------------------- 以上、参考書をまるごと入力しました。 そこで $num = $argv[1];で!$argv[1]とはこのプログラムではどんな働きがあるのでしょうか!? ($argv[1];を$numに代入だと思います。間違っていたなら御免なさい。) 宜しくお願いします。 なお・批判的なご回答はお控えくださいませ。
- ベストアンサー
- PHP
- <input type="hidden" >で配列(複数の要素)を渡したいとき?
こんにちわ, 今HTML+PHPで $hoge[]にいくつかの要素が入っているとき, それをあるfoo.phpというページに渡したいとき, echo '<form action="foo.php" method="POST">'; echo '<input type="hidden" name="$hoge[]" >'; echo '</form>'; としたのですが,うまくいきません。 どうしたらよろしいでしょうか。
- ベストアンサー
- PHP
お礼
ご回答毎度誠にありがとうございます。 新しいタグ「<PRE>・・・・・ソースを整形済みテキストとして表示する」 も新たに勉強になりました。 さて、 原因はよくわかりませんが!? 私が昨日試したときは、できませんでしたが、To_aru_User様の改行 が施された、以下の書式をコピー&ベースとしたところ、うまくいきました^^ たぶん、最初の回答でご指摘があった、全角スペースが絡んでいたのか定かでは ございませんが? Parse error:・・・・10行目がだめみたいで、エラーがでました! 見たところ、どこもへんなところがみあたらず!? そもそも根本的に間違っるか是非を知りたくて、質問に踏み切りました。 <html> <head> <meta "charset=utf-8" /> <title>型の明示的キャストと変換関数</title> </head> <body> <?php echo '<pre>'; echo (float)'15foo', PHP_EOL; echo (float)'15.33foo', PHP_EOL; echo (float)'1e2foo', PHP_EOL; echo (float)'foo', PHP_EOL; echo '</pre>'; ?> </body> </html> 以上のプログラムをブラウザ上の掲示したところ、以下が表示されました。 15 15.33 100 0