2012-04-18 13 views
0

phpをコマンドラインから使用する正しい方法がありますか...むしろ...別の方法よりも正しい方法ですか?その後、Linuxシェルでphpを実行する最も正しい方法

#!/usr/bin/php 
<?php 
print "This is a test".PHP_EOL; 
print "This is another test!!"; 
?> 

ます。chmod + xのtext.php(Linux上でそれを実行可能にする):

ファイルを作成する場合は、次のコードでtest.phpを言います。

あなたは、私は、ちょうど./test.phpを使用して好む..... ./test.php または のphp test.phpを次の方法で

を実行することができます多くの場合、php test.phpを参照してください。

ALSO

!は/ usr/bin/phpシェバングラインの #!は/ usr/bin/php 次の正しい構文であるか、これをより正確 #で

-q私は」どちらも見て、-qフラグがHTMLのものを静かにすることを確認していますが、 cli互換性を持ってコンパイルされたphpが本当に-qフラグを必要とするかどうか疑問に思っていましたか?
あなたの助けてくれてありがとう:)

+0

'/ test.php'と' php test.php'は全く同じものですが、前者だけが実行可能である必要があります。 –

+0

合意した、私はただ一つの方法がPHPの方が正しいかどうか疑問に思っていた。ある方法が他の方法よりも優れているとは思われず、コードを使って何をやっているかによって異なります。 – linuxnut

答えて

0
#!/usr/bin/php 

「#!」、ファイルの内容を解釈するために使用されるべきプログラムの名前です。最初の行は

"#!/ binに/ shの"

が含まれている場合たとえば、そのファイルの内容は、シェルスクリプトとして実行されます。

あなたの場合、/ usr/binにあるPHPファイルを使用してスクリプトを実行することを意味します。

を使用するphp test.phpを使用すると、test.phpをphpで実行しているため、最初の行は必要ありません。 ./test.phpの場合、ファイルは実行可能で、最初の行が必要です。

そして、あなたが-qのために見ればthis で-qフラグの外観について、具体的

奪う23日 - 3月 - 2007年11時48

に優れたexpanationsがあります。これは別のものですone

+0

あなたの最後のリンクが-qフラグに関する質問に答えました。 "これは、CGI SAPIに対して構築されたPHPインタプリタにのみ関係します。"テストでは、与えられた例では、cliでphpを実行しているときに-qフラグは必要ないと思われます。ありがとう。 :) – linuxnut

0

あなた自身の目的のために少しのPHPスクリプトを書いているなら、#!は問題ありません。

世界的に見えるボックス(Webサーバーなど)を使用する場合は、あまりうまくないと言えます。実行可能にするとセキュリティ上のリスクになるためです。

私は、perl、sh(常にプライベートではなく、プロダクション以外のもの)には#!、PHPではphp somefile.php(サーバー上で終わることもあります)を使用する傾向があります。インタプリタスクリプトの最初の行で

+0

私はperlとbash/shellスクリプト/プログラムの多くを書いています。私はshebang行と何かを実行可能にするセキュリティの意味を理解しています。コマンドラインからのスクリプト/プログラムは、 "ウェブ向き"ではなく、シェルスクリプトに似ています。私は間違いなくshebang行でchmod + xに傾いているので、 ".php"を残して実行することができます。他の言語でそれをコード化することにした場合でも、私は同じ名前を使用できます。ありがとう。 – linuxnut

+0

その場合:違いはありません(ただし、なぜ1つの言語で作業しているのか分かりません) – John3136

+0

実行ファイルがあり、/ usr/local/bin/myprogram "myprogram.php"ではなく "myprogram"だけで呼び出すことができます。ある時点で別の言語(Cなど)で書き直すことにした場合、あなたの名前は変わらず、他のアプリケーションで使用されている場合は、新しい名前に書き直す必要はありません。ほとんどの実行可能ファイルは/ usr/local/binに入れます/私は、perl/bash/kshなどの拡張子を付けません。 – linuxnut

関連する問題