/var/log/masayoshi/masayoshi.life.log

とりあえず、書きたいこと書くだけ。

久々にPHPを使ってみた



作っていたのは時間割を表示するプログラム、意味はさほどないけどw。


ソースコードをコピーして持ち帰ってください。


本体、ファイル名「index.php



<?php
require("csv_edit.php") ;#CSV編集ライブラリの呼出
$prog_file = "" ;#時間割CSVファイルの呼出
$prog_load = new csv_edit($prog_file,"") ;//ファイルを指示する
$prog_load->data_edits("r") ;

header("Content-type:text/html;charset=EUC-JP\n\n") ;
$prog_d = $prog_load->return_data() ;
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="index.css">
</head>
<body>
<caption>Masayoshi Time Progrum</caption>
<table>
<?php
for($i=0;$i<sizeof($prog_d)-1;$i++){
echo "<tr>" ;
if($i == 0){
for($s=0;$s<sizeof($prog_d[$i]);$s++){
echo "<th>{$prog_d[$i][$s]}</th>" ;
}
}else{
for($d=0;$d<sizeof($prog_d[$i]);$d++){
echo "<td>{$prog_d[$i][$d]}</td>" ;
}
}
echo "</tr>" ;
}
?>
</table>
</body>
</html>

CSV編集クラス、ファイル名「csv_edit.php



<?php
class csv_edit{
var $file = "" ;//編集するファイル
var $content = "" ;//ファイルの内容
var $ar_data = "" ;//分割した配列の内容



function csv_edit($file,$content){//作業するファイルの指定と内容の代入
$this->file = $file ;
$this->content = implode(",",$content) ;
$this->content .= "\n" ;
}
function data_edits($mode){//ファイルの書き込み、または読み込み
/* r=read w=write n=new file a=ato*/
switch($mode){
case r://読み出す
$reads = @fopen($this->file,$mode) ;
/* データの読み出しと分割 */
$i = 0 ;
while(!feof($reads)){
$this->ar_data[$i] = explode(",",fgets($reads)) ;
$i++ ;
}
fclose($reads) ;
break ;
case n://新規作成
echo "new file mode" ;
break ;
default ://その他、追記 上書き
$write_data = @fopen($this->file,$mode) ;
flock($write_data,LOCK_EX) ;
fputs($write_data,$this->content) ;
flock($write_data,LOCK_UN) ;
fclose($write_data) ;
break ;
}
}
function return_data(){
return $this->ar_data ;
}
}
?>

CSSファイル、ファイル名「index.css



table{width:500px;
border:1px solid #000000;}
td,th{width:100px;
border:1px solid #000000;
padding:10px;
text-align:center;}

CSV_ファイル、ファイル名「なんでもok」



,月,火,水,木,金,土


1,Python,c,JavaScript,Ruby,Perl,Java



注意:


中の人はEmacsを使っていますので改行が1つ余ります、その為本体のループである


「for($i=0;$i<sizeof($prog_d)-1;$i++){}」</ppp>

の-1を削らないと正常に全ての内容がループされない可能性があります、そのためとりあえず



  • そのまま動かす

  • 問題が起きたら「いじる」


事をよろしくお願いします、改造は勝手にやってください。


追記、CSVファイルの書式


1行目=>曜日を入れる、最初は空白にしてください


2行目=>時間を入れる、次の科目を入れる。


3行目以降=>2行目の繰り返し