会给值的原因:是因为前面都没有宣告$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 释放画布
<<: 理解React的setState到底是同步还是非同步(下)
The Flyweight design pattern uses sharing to suppo...
如标题,今天想和大家聊聊权限这东西 权限在Linux是个非常非常重要的东西,如果你一直被termin...
ArrayBuffer ArrayBuffer (又称byte-array) 就是一段固定大小的记...
今天讲一下有关class(类别)的继承:没有使用继承的class,我们一般称为"base ...
听说 JavaScript 的这两大类型「陈述式」与「表达式」也是很基本的观念,瞬间我感觉自己从来没...