自前テンプレートでメタタグ自動出し分けして、
ウマウマすれば良いじゃない。
以前書いたPHPでExcelファイルを読み込んで配列にするまでのサムシングをもっと使いやすくするために、
excelでメタタグ、タイトル周りをSCRIPT_NAMEから現在のページデータを取得するクラスを書いてみました。
使用イメージ
1行目をキーに配列を作成していく。
アクセスしたページによってメタタグのデータを以下のように出し分けるイメージ。
準備するもの
・ excelファイル
・ PHPExcelライブラリ ( http://phpexcel.codeplex.com/releases/view/107442 )
・ php環境
ソース
excel.php
<?php
// Excelシート番号
define('XLS_META', 0); // 今回使うシート
define('XLS_SNS', 1);
define('XLS_ITEM_LIST', 2);
// ----------------- 呼び出し
$scriptName = $_SERVER[“SCRIPT_NAME”];
$scriptName = '/index.html'; // デバッグ用
// 全体の配列を取得する
$metaData = EXCEL::getXls(dirname(__FILE__). '/myxls.xlsx', XLS_META);
// 現在のページデータ取得
$pageData = $metaData[$scriptName];
print '<pre>';
echo '現在ページ => '. $scriptName . “\n\n”;
// ページデータを出力
var_dump($pageData);
print '</pre>';
// ----------------- Excel操作クラス
/**
*
* @author wilf312 <wilf33312@gmail.com>
* @create 2013/05/30
* @version v 0.5 2013/05/30 02:17:19 Okada
**/
Class Excel {
public static function getXls($aReadFilePath, $aSheetNum)
{
// ライブラリファイルの読み込み
require_once dirname(__FILE__). "/../libs/PHPExcel/Classes/PHPExcel/IOFactory.php";
// ファイルの存在チェック
if (!file_exists($aReadFilePath)) {
exit($aReadFilePath. "が見つかりません。" . EOL);
}
// xlsxをPHPExcelに食わせる
$objPExcel = PHPExcel_IOFactory::load($aReadFilePath);
// 配列形式で返す
return Excel::getTitleArray($objPExcel->setActiveSheetIndex($aSheetNum)->toArray(null,true,true,true));
}
// 1行目を階層2の配列のキーにページの配列を作成
// 階層2への配列アクセスはSCRIPT_NAMEを使用できるようにURLを配列のキーにする
public static function getTitleArray($aTableData)
{
$titleArray = array();
$keyData = array();
$isFirst = true;
// 配列の整形
foreach($aTableData as $k => $v) {
if ($isFirst) {
// タイトル行を取得
$keyData = $v;
$isFirst = false;
} else {
$_simpleData = array(); // 仮データ保存配列
// タイトル行のフィールド名を取得して配列を作成する。
foreach($keyData as $k2 => $v2) {
// IDの場合だけ 値をfloatからintに変換しておく
if ($v2 === "id") {
$_simpleData[$v2] = (int)$v[$k2];
} else {
$_simpleData[$v2] = $v[$k2];
}
}
// 作成した配列を追加
$titleArray[$_simpleData["url"]] = $_simpleData;
}
}
return $titleArray;
}
}
?>
余談
明日は今回のexcelからページデータを取得して
それを元にPHPのテンプレートをさっくり書いていきます。
こちらでは皆さんからの皮肉・不平・不満・罵詈雑言などを募集しています。
お気づきの点がございましたら、お気軽にコメントいただけると大変嬉しいです。
よろしくお願いいたします。
・ Twitter
@wilf
・ e-mail
wilf33312@gmail.com