PHPでexec関数よりも簡単に外部コマンドの結果を得る方法

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

PHPと「`」(アクサングラーヴ記号、バッククオート)の意外な関係

まずはビックリしてください。

サーバーのシェルで「ls -la」とコマンドを入力すると、現在のカレント・ディレクトリのファイル一覧が表示できます。
では、PHPのスクリプト・ファイルに下記を記入して実行すると何が得られるでしょう?

<?php
echo `ls -la`;
?>

そう、コマンドラインの実行結果が取得できるのです!

参考元:Grave accent – Wikipedia, the free encyclopedia

ポイントはコマンドの前後にあるアクセント記号「`」です。

この「`」(グレイヴ・アクセント)記号は、「’」(シングルクオート)と間違やすいので”backquote”(バッククオート)と呼ばれることが多い(英語圏では”backtick”とも呼ばれたりする)のですが、もともとはアクセント記号で、アクサングラーブ、アクサングラーヴ、グラーブアクセント、グレーブアクセントなどとも呼ばれるます。

“Shiftキー + @”を押すと入力できます。 (109日本語キーボードの場合)

グレイヴ・アクセント(grave accent)
グレイヴ・アクセント ( ` ) は、フランス語、カタルーニャ語、イタリア語、ベトナム語などのラテン文字を用いる言語の表記に用いられるアクセント符号で、ダイアクリティカルマークの一種。(wikipedia)

しかし円マークのバックスラッシュといい、こんな使い方があったんですね。exec関数よりもお手軽に使いたい場合に便利ですな。rsyncとか。

関連記事

Mac OSXの起動時に開かれるアプリやファイルを遅延させる... ログイン項目の遅延起動方法の概要 Automaterで"delay","wait","sleep"などのスクリプトを使って一時停止させた後、ファイル/アプリを開くスクリプトを実行させるアプリを作り、それをログイン項目に登録する Macの起動時に、登録したアプリやファイルを一緒に起動さ...
ラズパイの`.bashrc`をデフォルト(初期値)に戻す... TL;DR `/etc/skel/`(スケルトン)に元の`.bashrc`があるのでコピーしてくる。 mv ~/.bashrc ~/.bashrc.old cp /etc/skel/.bashrc ~/.bashrc TS;DRと所感 RaspberryPi3にGolangを入れたのでシ...
mac OSXのターミナルで`exit`すると”Logout Saving sessio... MacのSierra(macOS10.12.4)でターミナルを使う際に、`exit`コマンドで抜けると後処理をしているようなメッセージが出ていることに気づきました。 MacBook-Pro:admin$ exit logout Saving session... ...copying s...

スポンサーリンク
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク
レクタングル(大)広告