プロが教える店舗&オフィスのセキュリティ対策術

<?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とは!何のことなのでしょうか!?

 以上宜しくお願いします。

A 回答 (6件)

こちらを参考にphp.exeにパスを通してください。


http://www.phpbook.jp/install/install/index3.html

この回答への補足

ご回答誠にありがとうございます。
ご紹介していただいた
http://www.phpbook.jp/install/install/index3.html
 ですが、その通りやりましたが!
コマンドプロンプト
 以下を実施したところ、
--------------------------------------------------------------------
c:\>php -v
'php' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

--------------------------------------------------------------------
以上ですで
 もしパスが通った場合は以下みたいに
なると説明がありました。

------------------------------------------------------------------
c:\>php -v
PHP 5.5.7 (cli) (built: Dec 11 2013 13:48:27)
Copyrighrt (c) 1987-2013 The PHP Group
Zend Engine v2.5.0, Copyrigh (c) 198-2013 Zend Technologies

C:\>

------------------------------------------------------------------------
 ご紹介していただいたHPの中に

PHPはサーバサイドで動作するスクリプト言語としてだけではなくコマンドラインからも利用できるようになっています。コマンドラインから使用する場合に使われる「php.exe」はPHPをインストールしたディレクトリに入っています。そこでにPHPをインストールしたディレクトリにPATHを通しておきます。・・・
 とあります。
 HPの説明にはc:¥php;を最後に追加するだけでいいと書いてありまし

 「php.exe」は私のパソコンからはC:\xampp\phpにありましたので、
システムプロパティ⇒詳細設定⇒環境変数⇒システム環境変数⇒Pathの最後を\c:\xampp\php;
として試しましたが、同じ結果でした。
 HPの説目には最後にc:¥php;を追加すればいいとは書いてありましたが、駄目でしたので
\c:\xampp\php;も試しましたが駄目!
 以下はシステム環境変数⇒Pathのところをまるごと貼りつけました。

C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;;;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;;;;;;;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Windows Live\Shared\c:\php;
 あるいは最後を、\c:\xampp\php;としましたが、結果は同じでPATHは通りませんでした。
 
 なぜPATHが通らないのでしょうか?
 もし分かられたらご教授を宜しくお願いいたします。

補足日時:2014/02/22 11:55
    • good
    • 0
この回答へのお礼

ご回答誠にありがとうございました。
 まだ解決していませんが、急いでいますので再度スレを立ち上げます。
今後ともよろしくお願いいたします^^

お礼日時:2014/02/23 21:39

\c:\php; を追加したのでは


C:\Program Files (x86)\Windows Live\Shared\c:\php
というディレクトリになります。C:\phpは追加されていません。

PATHでディレクトリを区切るのには、 ; (セミコロン)を使います。
先のURLにある画像でも C:\phpの前に ; があります。

[コマンドプロンプト path]で検索してみましょう。
また、[コマンドプロンプト 使い方] で基本的な使い方くらいは勉強しましょう

この回答への補足

ご回答誠にありがとうございます。
「コマンドプロンプト path」で検索はしましたが!
 いまいち分かりませんでした!?
 
C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;;;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;;;;;;;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\Program Files (x86)\Windows Live\Shared;c:¥php;
 取り合えず;セミコロンをcの前に追加しましたが
c:\>php -v
'php' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

PATHが通りません!
 以上
 宜しくお願いします。

補足日時:2014/02/23 10:58
    • good
    • 0

>> コマンド プロンプトでCDコマンドでカレントを以下としました。


>> c:\>

じゃなくって…

「cd C:\xampp\htdocs\study.localhost」で1行の命令です。
「php stringcast.php 100」で1行の命令です。

この回答への補足

ご回答誠にありがとうございます。
 本当に助かります^^

 以下コマンドプロンプトで実施した結果です。

---------------------------------------------------
C:\Users\Administrator>cd C:\xampp\htdocs\study.localhost

C:\xampp\htdocs\study.localhost>php stringcast.php 100
'php' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\xampp\htdocs\study.localhost>

-----------------------------------------------------
 以上ですが、確かに
 「C:\xampp\htdocs\study.localhost」
 には「stringcast.php」というファイルは存在します。
stringcast.phpの中身は

<?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;
}

 すみません、以上宜しくお願いいたします。

 
 

補足日時:2014/02/21 05:55
    • good
    • 0

cdコマンドに続いてphpコマンドを実行します。



cd C:\xampp\htdocs\study.localhost
php stringcast.php 100

この回答への補足

 ご回答誠にありがとうございます。
私のPHP、最後の砦はこのサイトのみとなりました。
 
 すみませんまたやり方の質問ですが!
コマンド プロンプトでCDコマンドでカレントを以下としました。
c:\>
 それで!これに続くコマンドは何と入力しらいいのでしょうか!
 ご回答くださったxampp\htdocs\study.localhost php stringcast.php 100
 をすこし組み合わせてやりました。

 以下私が実施した結果です。

c:\>xampp\htdocs\study.localhost
'xampp\htdocs\study.localhost' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

c:\>xampp\htdocs\study.localhostphp stringcast.php 100
'xampp\htdocs\study.localhostphp' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

c:\>xampp\htdocs\study.localhostphp\stringcast.php 100
ディレクトリ名が無効です。

c:\>xampp\htdocs\study.localhostphp\%php stringcast.php 100
ディレクトリ名が無効です。
 以上試しましたが・・わかりません
 すみません、よろしくお願いいたします。

補足日時:2014/02/20 20:46
    • good
    • 0

【重大な訂正】



php stringcast.php 100

自分で入力するのはこの3か所です。最初の「php」も必要でした。「php.exe」から「string.php」を、第1引数「100」を伴って実行するという意味です。
    • good
    • 0

コマンドラインから実行しているだけですね。

Linux系ではターミナル、Windowsではコマンドプロンプトとも呼ばれます。

%php
→ カレントディレクトリ表示(ここは入力するのではなく最初から表示されているもの)

stringcast.php
→ 実行するファイル(ここは入力する)

半角スペースで区切って…

100
→ 第1引数として渡されます。具体的には $argv[1] に文字列 "100" として代入されます。 $argv[0] には実行したファイル名 "stringcast.php" が渡される仕様となっており、こっちは第0引数なんて呼ぶのが妥当でしょうか。公式的な命名は分かりませんが。

PHP Manual - $argv
http://php.net/manual/ja/reserved.variables.argv …


【参考: Apache(Webブラウザ向けのサーバー)で実行する場合】

パラメータは $_GET $_POST $_COOKIE $_REQUEST で受け取ります。

PHP Manual - スーパーグローバル
http://php.net/manual/ja/language.variables.supe …


いつもとても厳しい回答がつくのを見ていて苦笑いしていますが頑張ってください・・・ww

この回答への補足

To_aru_User様毎どうご回答ありがとうございます。
助かります^^
 
 それで、やり方がいまいち!です。
 
 質問したファイル名を
 stringcast.phpとし、c:\>xampp\htdocs\study.localhostへ格納しまして、
c:\>xampp\htdocs\study.localhost\stringcast.phpとなりました。
 
 それで現在私のPCで
コマンドプロンプトを開いた最初の表示はC:\Users\Administrator>です。
cd c:\コマンドで
 以下のカレントドライブに切り替えて
c:\>xampp\htdocs\study.localhost\stringcast.phpを実行したとこと
 ちゃんとファイルは開きました。
 
パソコンの環境は以上です。
 
それで、申し訳ございませんが!
 この場合の %php stringcast.php 100 を実行する手順はどうしたらいいのでしょうか?
 すみません、私の現在のレベルではやさしい手順が必要です。
 どうぞ宜しくお願いいたします。

補足日時:2014/02/19 05:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!