PHPを学ぼう!

▼PHPを学ぶチャプターです。


フリーランスの求人サイト

 

素材メニュー

 ◆Chapter 1

 ◆Chapter 2

 ◆Chapter 3

 ◆Chapter 4

 

制作ヒント

 ◆制作のヒント

 

レッスンメニュー

 ◆Chapter2 練習問題

 ◆Chapter3 DB練習問題

 

サイト運営者がPHPを学んだ
お勧めの書籍です!
これ一冊で基本的なPHPの仕組み、簡単なプログラムの作成、SQLiteを使ったデータベースなどかなり学べる要素が詰まっています!

↓↓↓ ↓↓↓

PHPレッスンブック―PHP5対応

新品価格
¥2,520から
(2013/2/24 04:38時点)

 

 

サイバーテロの技法について書かれた書籍です!
ハッカーの手法を知ることでご自身のサイトがハッカーに攻撃されたときそれを防ぐ手法を紹介しています。

↓↓↓ ↓↓↓

PHPサイバーテロの技法―攻撃と防御の実際

新品価格
¥1,890から
(2013/11/5 10:09時点)

 

 

★初年度100円! サブドメインやメールアカウントを無制限に設置できます。
PHPやCGIは勿論、WordPress、Movable Type Open Source、掲示板、ブログ、ショッピングサイトなどが簡単に導入できるので複数サイトを運営したい場合に便利なサービスです。

↓↓↓ ↓↓↓

 

PHPが動作するサーバー

 

はじめてのHP | 無料素材 | タグ辞典 | CSSガイドEX | PHPを学ぼう!

◆Tip16 - テキスト、CSVファイルから簡易検索する

ホームページを作成していると MySQL や SQLite などのデータベースを使わなくともテキストや CSV ファイルからデータを取り込み簡易検索をしたいという場合があります。

 

例えば、
曖昧検索(あいまい)が不要」、
検索結果が重複してもいい」、
重複する値が存在しない(PRIMARY KEY 的なものが存在する)」、
複数のキーワードで検索する必要がない」、
データ量が少ない」、
検索結果のページ送り(ページャー)が必要ない

 

などを考慮しないデータであるなら問題も少ないでしょう。
これらは、PHP プログラムを工夫すれば解決できない問題でもありません。
もっとも多い理由としては、テキストやCSVファイルなら手元のデータの追加、修正、削除をしてサーバーにアップロードすれば簡単に変更ができると考えてしまうからです。
データ数も少なく追加、修正、削除をしないというのであれば、データベース化までする必要もないでしょう。

 

本来、データベースはデータの追加、修正、保存、抽出、加工などに特化したものでその利便性はとても優れています。
データ容量が大きくても軽快に動作するのがデータベースなのです。
初心者は設置や使い方が難しいなどの理由から敬遠してしまいがちですが、クエリー(命令文)で簡単に追加、修正、削除、加工ができるの点は大きいです。
テキストや CSV ファイルからデータベースへの登録、また逆のことも工夫次第では実現が可能です。
簡易データベースの SQLite に興味のある方は、Chapter3 を参照ください。

 

では実際にテキストや CSV からどのように取り込めばよいでしょうか?
大まかな流れについて見ていきましょう。

 

  • テキストや CSV データを用意する。
    エクセルなどで作成したデータは CSV に変換します。
    変換した後のファイルの文字コードに気をつけてください。
    テキストのデータは、データとして準拠していなければなりません。
    詳しくは、『 Tip 8 - CSVをデータベースに取り込む準備 』を参照ください。

  • データを取り込む
    データベースではデータベースファイルに直接アクセスしてデータを取り込みます。
    そうでない場合には、ファイルを一度全て取り込み必要とするデータを検索できるようにします。
    前者と後者ではレスポンス率が違ってきます。

  • データの加工
    データベースでは、クエリーでデータの追加や修正、削除ができます。
    テキストや CSV ファイルではこの動作がやや煩雑になりエラーを起こす原因になってしまいます。
    複数ワードの検索には別途プログラムを作る必要があります。

 

テキストや CSV ファイルからデータを検索の行うには読み込むデータを配列、つまり多次元配列にすることが望ましいでしょう。
他にやり方があるかもしれませんが、ここでは配列を利用する方法について紹介します。
配列、多次元配列については『 Chapter 2 - 配列 』を参照ください。

 

テキストや CSV ファイルを取り込む関数は、ツールEXで 配布しています「 テンプレート・CSV Loader 」を利用すれば簡単に多次元配列が作成できます。
以下はそのプログラムです。
利用方法は、ツールEXを参照ください。

01|function CsvLoader($file, $key, $switch){
02| $data_file = $file;
03| $fp = fopen($data_file,"r") or
04| die('*ファイルオープンエラー!');
05| while(!feof($fp)){
06| $data = fgets($fp);
07| $array[] = explode($key, $data);
08| }
09| if($switch == 1){
10| echo "<pre>";
11| print_r($array);
12| echo "</pre>";
13| }
14| if($switch == 2){
15| //array値順位を反転
16| $array = array_reverse($array);
17| }
18| return $array;
19|}

 

どうでしょうか?
データの取り込みは出来ましたか?

 

通常、エクセルなどから作成した CSV ファイルの文字コードは "SJIS" になっています。 ご利用のホームページの文字コードが "SJIS" なら問題ありませんが、PHP が推奨する "utf-8" の場合には文字コードを変換する必要があります。
修正が必要な場合には、7行目のコードを変更してください。

$array[] = explode(",", mb_convert_encoding($data, "UTF-8", "auto"));

サーバーが "mb_convert_encoding" の関数が実行できる必要があります。 "mb_convert_encoding" が使えない場合には、『Tip 8 - CSVをデータベースに取り込む準備』で紹介しているような工夫が必要になります。

 

データを取り込むと配列キーに対して検索をかけデータを絞り込むことができます。
練習問題12 - 外部ファイルの読み書き 』で実際にその方法を紹介していまので参考にしてください。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ex-mode.net | ツールEX | 素材EX | アフィモール | 初級者向 初めてのホームページ作り | Htmlタグ辞典 | 初めてのプランター菜園 | リンク・ボード
気のみ気のままなブログ | CSSガイドEX | ホビ★コレ | 班長日記!

▲UP

Copyright (C) ex-mode.net 2017. All Rights Reserved.