phpプログラミングの初心者入門講座

PHPプログラミングの初心者入門講座として、簡単なプログラムから知識を学んでいきましょう。

PHPで文字列表示の簡単なプログラム

おそらく、PHPでもっとも簡単なプログラムとして「echo」があります。
これは文字列を表示させるコードで、下記のように書きます。


<?php
  echo “文字列を表示させます。”;
?>


ブラウザでの表示は下記になります。


文字列を表示させます。


この「<?php」から「?>」までがPHPのコードですよ、という意味で基本となるので
覚えておいてください。

そして、今回でいうと、「<?php」から「?>」で囲まれている「echo “文字列を表示させます。”;」
というのがPHPの処理になるわけです。

「echo」のあとに書いてある「文字列を表示させます。」がブラウザに表示されるわけですが、
PHPコードはそこが終了であることを表す「;」を最後に書くことと、文字列は「”」で
囲むことに注意してください。

また「echo」は文字列を表示するためだけに使われるだけでなく、HTMLコードの出力もできます。
下記がサンプルコードです。


<?php
  echo “<a href=’http://test/’ >テスト</a>”;
?>


上記ではただリンクのHTMLコードを出力するだけですが、PHPのコードと組み合わせて
データベースから入手したURLをリンクとして出力する、というような使い方もできます。

PHPでMySQLへ日本語のINSERTができない、文字化けする対処法

DB接続のページでPHPからMySQLのINSERT、SELECT処理を行いましたが、
INSERT文を実際に実行してみた人の中には「日本語文字」だけ文字化けをしていたり、
空白になって入力できていない、という人もいたかもしれません。
文字化けとは「???」のように実際入力されるはずの日本語でない文字が挿入されていることです。

その原因ですが、その人の環境によっていくつか原因が考えられるので、
一概にどれが原因とは言えないのですが、文字化け、または日本語が
入力できない現象を直す方法を下記にいくつか記しますので、それらを
試して改善されるかどうかを確かめてみてください。

まずは、下記サンプルコードのように「mysql_query(‘SET NAMES utf8’, $sql );」
というコードを追加し、INSERTする文字を「utf8」にします。


&lt?php
  $sql = mysql_connect(“servername”, “username”, “password”);
  mysql_select_db(“dbname”, $sql);
  mysql_query(‘SET NAMES utf8’, $sql ); //ここを追加します

  $sql = “INSERT INTO test1(id,namae,works,hosoku) VALUES(1,’佐藤’,’事務’,’なし’)”;

  mysql_query($sql);
?>


次にHTMLコードの「head」部に下記コードのようにcharsetを「UTF-8」に
指定します。


&lthead>
  &ltmeta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ >
&lt/head>


そして、最後に下記のようにファイルを保存する時、「名前をつけて保存」を選択して
保存ダイアログを表示し、ファイル自体の「文字コードセット」を「UTF-8」を
選びます。


文字コードセット選択画像


上記は「サクラエディタ」を使った場合の画像です。
他のソフトを使っている場合にはその画面にしたがって選択をしてください。

文字化けの主な原因は文字コードがあっていない、という場合ですので、
上記に記した対策のように文字コードをutf-8にあわせれば改善される、というわけです。
また、日本語だけ空白になって入力できないというのは日本語に対応していない
文字コードを使っている可能性もあるため、日本語に対応しているutf-8に
文字コードをあわせればこちらも改善されると考えられます。

これらを試してPHPからのSQLでINSERT処理を実行し、文字化けや日本語が入力されない
現象が改善されるかを確認してみてください。

PHPで配列の作成とwhile文でのループ処理

配列とは一つの変数にいくつもの値を入れておける技術で、それぞれの値には
番号がふられますので、任意に取り出して使うことができます。

配列のサンプルコードは下記、


<?php
  $test = array(“1番目”, “2番目”, “3番目”);

  echo $test[0];
?>


上記では「test」という変数を配列にするため右辺で3つの値を入れています。
そしてechoで一番目の値を表示させます。
ここで注意しないといけないのは、「変数[配列番号]」で値を取り出せるのですが、
番号は「0」から始まります。

つまり、上記のサンプルコードでは、「$test[0]」を表示させるので、表示される
文字列は最初の「一番目」という文字列です。
もし「「$test[2]」となっていれば表示される文字列は「3番目」となります。

次に「while文」というものを使い、この配列をループさせてすべての値を表示
させてみます。

while文の構文は下記、


while (条件式) {
  条件式がTRUEのときの処理
}


while文はifやswitchと違い、条件式がTRUEの間は何度でも繰り返されます。
そのため、コードの書き方によっては永久にループしてしまうというバグも
発生しかねないので注意してください。

このwhile文を使って配列の値を表示させるサンプルコードが下記、


<?php
  $test = array(“1番目”, “2番目”, “3番目”);
  $i = 0;

  while ($i <= 2) {
    echo $test[i];
    $i++;
  }
?>


上記では、まず変数iに0が代入されて、while文の条件式が2以下かどうか、ですから
TRUEとなり中の処理が行われます。

最初は「$test[0]」がechoで表示されるわけですが、そのあと変数iは1プラスされて
もう一度while文の条件式へいきます。
「$i++」の「++」は値を1増加させる、という処理をしてくれます。
while文などのループ処理ではよく使うので覚えておいてください。

2回目のループでiの中身は1にりますが、まだ条件式はTRUEなので中の処理に入り、次は
「$test[1]」がechoで表示され、またiは1プラスされ2になって・・・とループ
されるわけです。

そして配列の中身すべてを表示し、iが3になった時点で条件式はFALSEになりますから
while文は終了になります。

これで配列の宣言とその中身をループですべて表示させるプログラムが出来ました。
また、「foreach」を使って配列をループさせる方法もあります。
コード例は下記


<?php
  $ar = array(1, 2, 3, 4);
  foreach ($arr as &$value) {
    $value = $value + 1;
  }
?>


「$value」の前に「&」がついている点に注意してください。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です