あちあち情報局

趣味や日曜プログラムなどを書いています

ユーザ用ツール

サイト用ツール


サイドバー

メニュー

現在リニューアル中

タグ一覧

programs:php_about

PHPの勉強(下書)

PHPについて

PHPはWebプログラミング言語のひとつ、特徴はHTMLファイル中にプログラムを埋め込む事ができる点で、HTMLの表示したい位置に直接記述できるので視覚的にわかりやすくメンテナンス性が良いです。またWebで頻繁に登場する処理が関数化されているので開発者は少ないコードでプログラミングでき楽できます。

PHPはWebサーバーで動作するためサーバー内のデータを直接読み書きでき、出力されるデーターはHTMLなのでブラウザ側に特別な設定が必要ありません。

他のWebプログラミング言語との比較

Webプログラミング言語のPerl(CGI)とJavaScriptとPHPを比較すると。

Perl(CGI)

PerlとPHPはWeb用としてはほぼ同じ種類のプログラミング言語でサーバー上でプログラムを実行して結果をブラウザに送信します。また処理に競合する所が多いので1つHTMLを出力する場合はどちらか片方の言語しか使えません(HTMLが分かれていれば1つのWebサイトに混在する事はできます)。

大きく違うのは、PHPはHTMLファイル中にプログラムを書けますが、Perlはプログラム中にHTMLを書きプログラムによってHTMLを出力する点です。下記にPHPとPerlでほぼ同じ処理をするプログラムを比較するとわかると思いますがPerlの方は事前処理があったりと複雑になっているがわかるとおもいます。

PHPプログラム

sample.php
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8"> 
    <title>タイトル</title>
  </head>
  <body>
    <?php
      echo '<h1>Hello World</h1>';
      $x=1;
      $y=$x+2;
      echo '<p>計算結果='.$y.'</p>';
    ?>
  </body>
</html>

比較用のPerlプログラム

sample.cgi
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print '<!DOCTYPE html>';
print '<html lang="ja">';
print '  <head>';
print '    <meta charset="utf-8">';
print '    <title>タイトル</title>';
print '  </head>';
print '  <body>';
print '    <h1>Hello World</h1>';
$x=1;
$y=$x+2;
print '    <p>計算結果='.$y.'</p>';
print '  </body>';
print ' </html>';
exit;

注意:Perlの名誉のために書いておきますが、PerlはWebに特化していないのでWebを使わないアプリケーション開発に使用できますがPHPはHTMLへの組み込みやブラウザ出力が基本のためWeb以外ではあまり使われていません。

JavaScript

JavaScriptとPHPは両方ともhtmlファイルにプログラムを埋め込む事ができるプログラミング言語です。

大きく違う点は、PHPはサーバー上で動作しJavaScriptはWebブラウザ上(クライアント側)で動作する点です。サーバー上で動作するPHPはWeb側から操作できないサーバー深部のデータにアクセスしたりファイルを作成する事がきますが出力するデータは静的なhtmlなのでブラウザ表示した内容を変更する事はできません。対するブラウザ上で動作するJavaScriptはサーバーと通信しなくてもユーザーの操作に反応して表示を変更するなど動的な表現ができますがサーバー深部のデータにアクセスしたりサーバーにファイルを作成する事はできません。

もう一つ違う点は、JavaScriptはユーザーの設定により無効化できたり希少ながらJavaScriptの動作しないブラウザもあるので対策が必要となります。PHPはサーバーで動作するのでユーザーは無効化できません。

両者は同時に使用する事ができ、サーバー側で無ければ処理できない処理はPHP、ブラウザ側で無ければできない処理はJavaScript、と連携させるとより複雑で高度な作業が可能となります。

programs/php_about.txt · 最終更新: 2018/05/14 00:57 by 管理者