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とか。


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

シェアする

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