読者です 読者をやめる 読者になる 読者になる

感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

PHPで外部のシェルコマンドを実行するサンプル

<スポンサーリンク>

実行演算子(``)というのがあって、これは外部のシェルコマンドを実行するための演算子である。
バッククオートで囲まれた部分がシェルのコマンドとして実行される。
返り値が、シェルを実行した結果になる。
shell_exec()関数と同じこと。
これを使えば、linux上なんかで、バッチみたいにPHPを使うことができる。
コード例はこんな感じ。

#!/usr/bin/php
<?php

$result = `ls -ltr *`;
echo $result, PHP_EOL;

echo "------shell_exec()------",PHP_EOL;
$result2 = shell_exec("ls -ltr *test*");
echo $result2, PHP_EOL;

実行した結果はこちら。

# /usr/bin/php sample.php
-rwxr-xr-x. 1 root root 247 Nov 26 07:31 test.sh
-rw-r--r--. 1 root root 175 Nov 27 05:42 sample.php

------shell_exec()------
-rwxr-xr-x. 1 root root 247 Nov 26 07:31 test.sh

こんな感じで、シェルコマンドを実行したり、bashを実行したりできるから、実行演算子PHPでバッチ処理を実装するのに便利そう。

(追記)
並列にスクリプトを実行するサンプル↓
pthreadsを使って、PHPからシェルスクリプトを非同期で並列に実行するサンプル