會給值的原因:是因為前面都沒有宣告$row(猜測)
$fp = @opendir($dir) or exit('Server Busy v2');
if ($fp) {
while ($row = readdir($fp)){
}
}
https://www.php.net/manual/en/refs.fileprocess.file.php
1.做檔案總管在做的事情(ex:開啟)
2.檔案內容存取有關的事(開啟後使用)
is_dir 是否是目錄
is_file 是否是檔案
filesize 檔案大小
unlink 刪除檔案(要小心,掰就掰了.........)
trim 去除換列符號(會影響資料解析,有時候換列會看不到[眼睛有業障XD])
fwrite 寫入檔案
file() 直接讀檔
fgetss() 讀取一列,但是拿掉html標籤(爬蟲好用)
die("Server Busy") 死掉了讀不到會顯示
exit('Server Busy v2') 死掉了讀不到會顯示_V2
opendir 開啟目錄
readdir 打開目錄的條目 讀取
closedir 關閉目錄
fopen("maskdata.csv", "r") 開啟檔案orURL,"r"唯讀
若要寫入,為了安全起見,要寫入請用"a",從後面寫
https://www.php.net/manual/en/function.fopen
fgets 讀取檔案一整列
fclose 關閉檔案
filemtime()) 檔案內容被存取的時間
fileatime()) 檔案最後被讀寫的時間
date_default_timezone_set('Asia/Taipei'); 時區調整,使用亞洲/台北time
date('Y-m-d H:i:s') 轉換時間格式
https://www.php.net/manual/en/function.date
calendar 老師說好用
https://www.php.net/manual/en/book.calendar.php
$dir = '.'
$fp = @opendir($dir) or exit('Server Busy v2'); //opendir開啟檔案
if ($fp) {
while ($row = readdir($fp)) { //readdir 打開目錄的條目 讀取
break;
}
} else {
echo 'XX';
}
closedir($fp); //關閉檔案
若有權限處理檔案,誤刪會回不來:unlink
<script>
var a = 10;
function test1() {
a = 100;
}
test1();
document.write(a); //100 與PHP不同 JS直接變成global(因為var)
</script>
但是我不要這樣QQ
for ($i = 0; $i < 7; $i++)
$tempId .= rand(0, 9); //亂數0~9 .字串相加
請習慣包起來
for ($i = 0; $i < 7; $i++) {
$tempId .= rand(0, 9); //亂數0~9 .字串相加
}
https://www.php.net/manual/en/function.explode
explode 切割字串,回傳陣列
$rows = file("maskdata.csv");
foreach( $rows as $k => $row){
$data = explode(",", $row);
// [0]:醫事機構名稱 醫事機構地址 成人口罩剩餘數 兒童口罩剩餘數
if ($k == 0){
echo '<tr>';
echo "<th>$data[1]</th>";
echo "<th>$data[2]</th>";
echo "<th>$data[4]</th>";
echo "<th>$data[5]</th>";
echo '</tr>';
}else{
echo '<tr>';
echo "<td>$data[1]</td>";
echo "<td>$data[2]</td>";
echo "<td>$data[4]</td>";
echo "<td>$data[5]</td>";
echo '</tr>';
}
}
<?php
$fp = fopen('https://www.iii.org.tw/', 'rb', false, $context) or die();
// $fp = fopen('https://www.bradchao.com/', 'r');
while ($line = @fgets($fp)) {
//fgetss()讓顯示更漂亮,Deprecated:但版本要淘汰了(記得檢視原始碼觀察)
echo $i++ . $line . '<br />';
}
fclose($fp);
?>
$line1 = trim(@fgets($fp)); //讀取第一列
$headers = explode(",", $line1);
echo '<tr>';
echo "<th>$headers[1]</th>";
echo "<th>$headers[2]</th>";
echo "<th>$headers[4]</th>";
echo "<th>$headers[5]</th>";
echo '</tr>';
while ($line = trim(@fgets($fp))) { //讀取第二列開始,不會從頭,因為接續跑
$row = explode(",", $line);
echo '<tr>';
//記得改td
echo "<td>$row[1]</td>";
echo "<td>$row[2]</td>";
echo "<td>$row[4]</td>";
echo "<td>$row[5]</td>";
echo '</tr>';
}
1.r+從前面寫
2.w全部清掉重寫
3.a從後面
<?php
$fp = fopen('test1.txt', 'a');
fwrite($fp, "hello world");
fclose($fp);
?>
$fp = @fopen("dir1/{$filename}.html", 'w');
//dir2資料夾下 ; w 後面蓋前面 ; .html新增該類型檔案
fwrite($fp, $content); //寫入
fclose($fp); //關閉
// 輸出轉導向: URL
header("Location: dir2/{$filename}");
file_exists 檢查有無該資料夾
mkdir創建一個資料夾
if (!file_exists("dir2")) { // file_exists該(dir2)資料夾有沒有存在
// mkdir如果沒有(dir2)就創建一個dir2; 0777 權限
if (!mkdir("dir2", 0777)) {
die("ERROR 01");
}
}
header("Location: dir2/{$filename}");
別人寫網頁刪除掉自己的網頁
該網頁會占存在資料庫(為了要顯示業面)
因此會清除掉資料庫內的網頁index.html
故html(限制網頁類別)要寫,否則有機率會被砍到檔案
$fp = @fopen("dir1/{$filename}.html", 'w');
//dir2資料夾下 ; w 後面蓋前面 ;.html新增該類型檔案
fwrite($fp, $content); //寫入
fclose($fp); //關閉
header("Location: dir1/{$filename}.html");
一定要 method="post"
編碼解析 enctype="multipart/form-data"
<form>
<form action="brad45.php" method="post"enctype="multipart/form-data">
</form>
$ _ FILES 接收上傳檔案
<?php
$upload = $_FILES['upload'];
?>
move_uploaded_file(來源,放這) 把檔案放在這
['tmp_name'] 來源,var_dump($upload)得知
if ($upload['error'] == 0) {
// upload success
$filename = date('Ymd_His') . '.jpg';
if (move_uploaded_file(
$upload['tmp_name'],
"upload/{$filename}"
)) {
echo 'upload success';
} else {
"Ooop2!";
}
} else {
// upload failure
echo "Ooop1!";
}
(1)回去開組態檔(記得備份)
brad02.php查看
(2).ini 編輯
memory_limit = 128M 記憶體限制
post_max_size = 64M 總共檔案限制
upload_max_filesize = 32M 單一檔案限制
https://www.php.net/manual/en/book.image
imagecreate 做畫布
imagecolorallocate 選顏色
imagefill 塗滿滿
imagefilledrectangle 畫矩形
imagedestroy 釋放畫布