プログラム / 2009/05/31 (Sun) / 編集 |
アップロードしたアルバムを表示するプログラムを作ってみた、まぁもっとすごいのが無料で配布してたりするんだけどね、練習ってことで。。。
という訳でメモ、自分用備忘録なので説明は適当。。。
ディレクトリを指定する設定ファイルがあって、そこに書いてあるディレクトリを読み込む。
ディレクトリ内のファイルは対応ファイルをすべて読み込む。(←課題表示プログラムはホワイトリスト形式)
ディレクトリ内に写真の説明をするファイルを置く事ができる、ここに説明が記述されている写真には説明文がつく。(ミクにゃんの画像とか)
本体
ビューワ(本体と同じディレクトリ内に置く)
アルバムのリスト(本体と同じディレクトリ内に置く)
画像の説明ファイル(画像と同じディレクトリ内に置く)
CSVファイルを読み込む関数は結構便利だから追記にでもメモっとくか。。。
という訳でメモ、自分用備忘録なので説明は適当。。。
ディレクトリを指定する設定ファイルがあって、そこに書いてあるディレクトリを読み込む。
ディレクトリ内のファイルは対応ファイルをすべて読み込む。(←課題表示プログラムはホワイトリスト形式)
ディレクトリ内に写真の説明をするファイルを置く事ができる、ここに説明が記述されている写真には説明文がつく。(ミクにゃんの画像とか)
本体
ビューワ(本体と同じディレクトリ内に置く)
アルバムのリスト(本体と同じディレクトリ内に置く)
画像の説明ファイル(画像と同じディレクトリ内に置く)
CSVファイルを読み込む関数は結構便利だから追記にでもメモっとくか。。。
[read_csvfile($csvfilepath)]
「#」はコメント
「!」は連想配列
その他は配列
例
#commpent
!key,value
data1,data2,data3
array(2) {
['key']=>
string(5) "value"
[1]=>
array(3) {
[0]=>
string(5) "data1"
[1]=>
string(5) "data2"
[2]=>
string(5) "data3"
}
}
そんな感じになる予定
function read_csvfile($csvfilepath) {
//echo 'CSV file = '.$csvfilepath.'<br>';
if(file_exists($csvfilepath)){
//echo 'success to find '.$csvfilepath.'<br>';
$temp = array();
$data = file($csvfilepath);
//echo '<center>data (default)</center><hr><pre>';var_dump($data);echo '</pre><hr>';
$avoid=0;
//ファイルの内容を連想配列に格納
for ( $count = 0; $count < sizeof($data); $count++) {
//改行コード削除
$data[$count]=delete_string($data[$count],array("\n","\r"));
//echo '<center>data['.$count.'](delete \r)</center><hr><pre>';var_dump($data[$count]);echo '</pre><hr>';
//[#]はコメント
if( (strncmp($data[$count],"#",1))==0 || (empty($data[$count])) ){
//echo 'first char is # or nill<br>';
$avoid++;
continue;
}
$temp[$count-$avoid] = split( ',', $data[$count] );
}
//echo'<center>temp</center><hr><pre>';var_dump($temp);echo '</pre><hr>';
//連想配列を使いやすい形に成形
$count = 0;$filenum=1;
$csvdatas = array();
while($count < count($temp)){
if( (strncmp($temp[$count][0],"!",1))==0){
$key1=substr($temp[$count][0],1);
//echo $key1;echo $temp[$count][1];
$csvdatas[$key1] = $temp[$count][1];
$count++;
continue;
}
foreach($temp[$count] as $key => $value){
$csvdatas[$filenum][$key] = $value;
}
$filenum++;
$count++;
}
$csvdatas['filenum']=$filenum-1;
unset($temp);
//echo'<center>csvdatas</center><hr><pre>';var_dump($csvdatas);echo '</pre><hr>';
}else{
echo 'error[404] : can not find '.$csvfilepath.'<br>';
exit(1);
}
return $csvdatas;
}
あと、上の関数で使っている「function delete_string($str,$errstr) 」、ereg_replaceを何回もやるのがめんどくさかったんだ。。。
function delete_string($str,$errstr) {
for($num=0;$num<count($errstr);$num++){
$str=ereg_replace($errstr[$num],"",$str);
}
return $str;
}
「#」はコメント
「!」は連想配列
その他は配列
例
#commpent
!key,value
data1,data2,data3
array(2) {
['key']=>
string(5) "value"
[1]=>
array(3) {
[0]=>
string(5) "data1"
[1]=>
string(5) "data2"
[2]=>
string(5) "data3"
}
}
そんな感じになる予定
function read_csvfile($csvfilepath) {
//echo 'CSV file = '.$csvfilepath.'<br>';
if(file_exists($csvfilepath)){
//echo 'success to find '.$csvfilepath.'<br>';
$temp = array();
$data = file($csvfilepath);
//echo '<center>data (default)</center><hr><pre>';var_dump($data);echo '</pre><hr>';
$avoid=0;
//ファイルの内容を連想配列に格納
for ( $count = 0; $count < sizeof($data); $count++) {
//改行コード削除
$data[$count]=delete_string($data[$count],array("\n","\r"));
//echo '<center>data['.$count.'](delete \r)</center><hr><pre>';var_dump($data[$count]);echo '</pre><hr>';
//[#]はコメント
if( (strncmp($data[$count],"#",1))==0 || (empty($data[$count])) ){
//echo 'first char is # or nill<br>';
$avoid++;
continue;
}
$temp[$count-$avoid] = split( ',', $data[$count] );
}
//echo'<center>temp</center><hr><pre>';var_dump($temp);echo '</pre><hr>';
//連想配列を使いやすい形に成形
$count = 0;$filenum=1;
$csvdatas = array();
while($count < count($temp)){
if( (strncmp($temp[$count][0],"!",1))==0){
$key1=substr($temp[$count][0],1);
//echo $key1;echo $temp[$count][1];
$csvdatas[$key1] = $temp[$count][1];
$count++;
continue;
}
foreach($temp[$count] as $key => $value){
$csvdatas[$filenum][$key] = $value;
}
$filenum++;
$count++;
}
$csvdatas['filenum']=$filenum-1;
unset($temp);
//echo'<center>csvdatas</center><hr><pre>';var_dump($csvdatas);echo '</pre><hr>';
}else{
echo 'error[404] : can not find '.$csvfilepath.'<br>';
exit(1);
}
return $csvdatas;
}
あと、上の関数で使っている「function delete_string($str,$errstr) 」、ereg_replaceを何回もやるのがめんどくさかったんだ。。。
function delete_string($str,$errstr) {
for($num=0;$num<count($errstr);$num++){
$str=ereg_replace($errstr[$num],"",$str);
}
return $str;
}
PR
トラックバック
URL :
コメント