2012年03月21日
講義033日目
------------------------------1H------------------------------
レンタルサーバーへ掲示板移行のバグ取り
------------------------------2H------------------------------
レンタルサーバーへ掲示板移行のバグ取り
------------------------------3H------------------------------
★レンタルサーバーへの掲示板移行
●アクセス権限
|オーナー|グループ|その他 |
・読み込み許可 | ○ | ○ | ○ |
read | 4 | 4 | 4 |
・書き込み許可 | ○ | × | × |
write | 2 | 2 | 2 |
・実行許可 | ○ | ○ | ○ |
execute | 1 | 1 | 1 |
webサーバーユーザーで、ファイルにアクセスする
apacheユーザ等→その他に該当
●1から7の数字の組み合わせで権限を表現
授業ではimgフォルダに対して、755→777に変更した
FFFTPから属性変更することも可能
------------------------------4H------------------------------
★ファイル操作
●filesousaプロジェクトの作成
・SwitchHostを使用してhostsファイルの編集
hostsファイルにfilesousa.comを追加
・http-vhostファイルの編集
<VirtualHost *:80>
DocumentRoot C:\pleiades\xampp\htdocs\filesousa
ServerName filesousa.com
<Directory "C:\pleiades\xampp\htdocs\filesousa">
AllowOverride All
Options -Includes -ExecCGI
</Directory>
</VirtualHost>
・htaccessの設定
http-vhostファイルに書き込まれた<Directory></Directory>で囲まれた部分の内容は
そのディレクトリに書き込まれたhtaccessが優先される
普通はhtaccessで制御する
●mysqlのデータをCSVで吐き出してみる
mysql> SELECT * FROM comment INTO OUTFILE "./export.csv" fields terminated by ',' ;
C:\pleiades\xampp\mysql\dataに吐き出される
------------------------------5H------------------------------
★filesousa.com
●filesousa.comにdataフォルダを作成
・CSVで吐き出した./export.csvをコピー
・index.phpに記述
<?php
$csv = "./data/export.csv";
$row = 1;
if (($handle = fopen($csv, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !==FALSE) {
$num = count($data);
print $row. " 行目には".$num. "列あります<br />。";
$row++;
for ($i=0; $i < $num; $i++) {
print $data[$i] . "<br />\n";
}
}
fclose($handle);
}
●fopen関数、fgetcsv関数、fclose関数
・fopen関数
ファイルを開くための関数
fopen($csv, "r")
"r"→読み込みのみ
"w"→書き込みのみ
"a"→で追加
・fgetcsv関数
一行づつ読み込むので、ループさせて使う
カンマで区切られた部分を配列として読み込む
データのくくり文字(エンクロージャ)も指定できる
fgetcsv($handle, 1000, ",")
・fclose関数
一応操作が終了したら書いておくのを推奨
大量の処理の場合に重くなったりする
基本は開いたら閉じる
if文を使って、
ファイルを開いたら閉じる
ファイルを開けなかったら動かない
ようにする
●色々なデータの読み込み関数
・fgets,fputcsv,fputsなど
●リソース型
上のソースの$handleに入ってる値はリソース型
mysqlの時の$resultと同じ
------------------------------6H------------------------------
★filesousa.com
●練習問題
・自分で作成したデータベース内のテーブルのデータをcsv にエクスポートし、
そのデータをHTMLのテーブルで表示するプログラムを作ってください。
・mysql> SELECT * FROM mone_grandprix INTO OUTFILE "./mone_gradprix.csv" fields terminated by ',' ;
で吐き出したデータをfilesousa.com/dataフォルダへ
<?php
$csv = "../data/mone_grandprix.csv";
if($handle = fopen($csv, "r")) {
echo "<table>";
while (($data = fgetcsv($handle,1000, ","))) {
echo "<tr>";
for($c=0; $c < count($data); $c++){
echo "<td>";
echo $data[$c];
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
fclose($handle);
}
?>
●fputs関数
・テキストファイルの生成と追加ができるプログラム
<?php
$file_path = "../data/putfile.txt";
if($handle = fopen($file_path, "a+")){
if(!fputs($handle,"これはテストです\n")){
echo"書き込みに失敗しました。<br>";
}
fclose($handle);
}else{
echo "ファイルオープンに失敗しました<br>";
}
echo "ファイルの書き込みを確認してください";
?>
ページにアクセスするたびにテキストが増えていく
-----------------------------memo------------------------------
0 件のコメント:
コメントを投稿