PHP初心者は:EXECコマンドの標準的な慣行を使用していますか?

StackOverflow https://stackoverflow.com/questions/4000403

  •  25-09-2019
  •  | 
  •  

質問

私はPHPを始めています。これを行うには良い方法があれば私は好奇心旺盛です。これは、このスクリプトと同じフォルダに私のスクリプトがすべて表示されます。

私はEXECコマンドを使用して、標準であればわかりません。それは非常に移植思えません。

<html>
<head>
   <title>My PHP Practice Scripts</title>
</head>

<body>
   <center><h1>PHP Scripts</h1></center>
   <?php
      exec("ls -1 *.php", $output);

      foreach ($output as &$tmp){
         echo "<a href=\"$tmp\">$tmp</a><br>";
      }
   ?>
</body>
</html>

他のヒント

"幹部は" ポータブルbeacuseはAPIです! :-)何ポータブルではないことは、あなたが「実行」を通じて呼び出すコマンドラインを表す文字列です。

この場合は、ディレクトリを読み取るためにPHPのAPIを使用することができます。それはあなたのサーバーに使用し、すべてのOSに移植性があります。

例: DIR PHPでクラス

  

EXECコマンドの標準的な慣行を使用していますか?

はありません。ホストオペレーティングシステムと対話するexecを使用することは非常に非移植の練習です。事実上どのような状況の場合は、OSに依存しないソリューションがあります。この特定のケースでは、 glob にして、現在のディレクトリ内のすべてのファイルを見つけることができます、 readdir のか<のhref = "http://www.php.net /manual/en/function.scandir.php」のrel = "nofollowを"> scandir を。

は、多くの場合も、ユーザーの入力のいずれかの形式を受け入れるプログラムでevalを使用すると、重大なセキュリティリスクにつながります。あなたのプログラムは、現在、そのようなリスクを患っていないが、それはまた、非常に簡単です。

はい、あなたは後にしているものを行うには良い方法があります。 グロブのか<のhref = "http://us.php.net/readdir" のrel =」ありますnofollowを ">のreaddir のスタータ用。

限り、「標準的な慣行が行く」として、あなたは、PHPの土地で、この多くのを見ることができます。開発者は非常によく、PHPの巨大なコードベースを知りませんが、シェルを知っていなければ、それらはすべて自分の仕事を得るための場所の上に幹部とバッククォートを( ``)を使用してしまいます。これは、PHP開発者の何割かが嫌いという標準的な慣行だし、別の割合はなしでは生きことができませんでした。それを見に慣れるます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top