10.31學習筆記
php 常用的日期函式
1540949469 時間戳 當前距離1970年1月1日 0:0:0 的秒數 返回單位是秒
//echo (time());
//date()日期函式
echo (date("y-m-d h:i:s")); //獲取當前時間 y-m-d 年-月-日 h:i:s 時-分-秒
php 設定預設的時區
date_default_timezone_set("PRC"); //中國(北京)的時區
//echo (date_default_timezone_get()); //獲取設定的時區
是在配置檔案設定 php.ini date.timezone = PRC
補充:
幾個陣列函式
array_merge() 合併陣列或者合併多個數組
array_sum 統計所有的總和
array_slice(擷取的陣列,擷取的元素(這裡的元素不是下標))
array_slice (擷取的陣列,起始元素,長度)
strrpos ( ) 1獲取最後出現的位置 2從右向左擷取
php 檔案函式
is_writeable("檔案路徑") 判斷檔案是否可寫 //檔案是否存在
如果可寫 返回true 檔案不存在或者只讀 返回false
is_executable("檔案路徑") 判斷檔案是否可以執行 windows .exe .sys .com 都是可執行檔案
file_exists() 檔案或者目錄是否存在
filesize() 檔案的大小(讀具體檔案的大小) 單位是b 位元組
1G = 1024M
1M = 1024KB
1KB = 1024B
php 檔案建立時間 檔案修改時間 檔案訪問時間
filectime("檔案路徑") create:建立 獲取檔案的建立時間
filemtime
fileatime("檔案路徑") activor:訪問 獲取檔案的訪問時間
opendir(“開啟目錄地址”) 開啟一個目錄
readdir(“讀取的內容”) 讀取目錄中的內容 返回的是個路徑 . .. ./ ../
php檔案上傳 圖片上傳功能
php用表單上傳 步驟: 1.上傳位置2.檔案型別3.檔案大小4.檔案重新命名5.檔案儲存到資料庫
用ajax非同步提交
(1):表單設定上傳圖片 表單上加入 enctype="multipart/form-data"
(2):$_FILES 超級陣列
Array
(
[imgs] => Array
(
[name] => 6.jpg 圖片名字
[type] => image/jpeg 圖片型別
[tmp_name] => C:\Users\Administrator\AppData\Local\Temp\php75C3.tmp
圖片存放地址(虛擬地址)
[error] => 0 0:上傳成功 1:上傳失敗
[size] => 132244 圖片大小 返回的位元組
)
)
(3):上傳圖片的函式 move_uploaded_file("原有路徑","現有路徑") 現有路徑覆蓋原有路徑 <=> copy()
上傳圖片的函式 copy()
(4):處理圖片命名
(5):圖片上傳的格式
(6):控制圖片大小
(7):圖片的地址存入到資料庫
例子:
<form method="post" action="10.31.php" enctype="multipart/form-data">
<input type="file" name="imgs" /><br/>
<input type="submit" value="上傳圖片"/>
</form>
<?php
if(!empty($_FILES)){
//判斷檔案大小
if($_FILES['imgs']['size'] > 2*1024*1024)
{
die("你上傳的檔案太大");
}
//判斷檔案的型別
$path = array(".jpg",".png",".gif",".bmp");
$pathname = substr($_FILES['imgs']['name'],strrpos($_FILES['imgs']['name'],"."));
if(!in_array($pathname,$path))
{
die("你上傳的檔案型別不符合");
}
//檔案重新命名
$file_img = time().rand(99,5000).$pathname;
//建立資料夾
$file = "uploads/".date("y");
if(!file_exists($file))
{
mkdir($file);//建立一個檔案
}
$file = $file."/".date("m-d");
if(!file_exists($file))
{
mkdir($file);//建立一個檔案
}
$path = $file."/".$file_img;
//上傳圖片
copy($_FILES['imgs']['tmp_name'],$path);
}
?>
全靜態快取 偽靜態快取
$b = file_get_contents(“獲取檔案資訊”)
file_put_contents("讀取到自己檔案裡面",$b)
載入檔案
include("xx.html"); //載入檢視檔案
圖片繪畫 驗證碼
先開啟gd庫
application programme interface interface:介面 application:應用程式
header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate"); 設定圖片繪畫(圖片大小 )
header("Content-type: image/png;charset=utf8");設定圖片的型別,和字符集
$im = imagecreatetruecolor(寬度, 高度);返回影象資源
$back_color = imagecolorallocate($im, 紅, 綠, 藍);使用三元色畫背景
imagefilledrectangle(影象資源,右上x,右上y,左下x,左下y,顏色) //畫矩形
imagerectangle($im, 左上x, 左上y, 右下x, 右下y,顏色資源); //畫邊框
imagesetpixel($im, x座標,y座標,顏色資源) //畫干擾點
imageline影象資源,右上x,右上y,左下x,左下y,顏色) //畫直線
imagearc($im,中點x,中點y,橫距離,豎距離,起始角度,結束角度,顏色) //畫曲線
imagepng($im);//生成影象
imagedestroy($im);//銷燬圖片
imagefttext() 能繪製UTF-8編碼的字串漢字
小例子:
<?php
header("Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate");
header("Content-type: image/png;charset=utf8");
//指定邊框的寬度和高度
$s_width = 100;
$h_height= 80;
$im = imagecreatetruecolor($s_width, $h_height);
//畫矩形(邊框)
$back_color = imagecolorallocate($im,255,255,255); //使用三元色畫背景
imagefilledrectangle($im,0,0,$s_width,$h_height,$back_color);//畫框
//畫干擾點
for($i=0;$i<20;$i++)
{
$tpixe_color = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
//imagesetpixel($im, x座標,y座標,顏色資源)
imagesetpixel($im,rand(0,$s_width),rand(0,$h_height),$tpixe_color);
}
//畫直線
for($i=0;$i<10;$i++)
{
$line_color = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline($im,rand(0,$s_width),rand(0,$h_height),rand(0,$s_width),rand(0,$h_height),$line_color );
}
//畫弧線
for($i=0;$i<10;$i++)
{
//imagearc($im,中點x,中點y,橫距離,豎距離,起始角度,結束角度,顏色)
$arc_color = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagearc($im,rand(0,$s_width),rand(0,$h_height),rand(0,100),rand(0,100),rand(-90,90),rand(70,360),$arc_color);
}
//畫數字影象
$str = "23456789abcdefghigkmnpqrstuvwxyzABCDEFGHIJKLMNPQRSTUVWXYZ";
$x =20;
$y =40;
for($i=0;$i<4;$i++)
{
//隨機數字
$char = $str[rand(0,strlen($str)-1)];
$font_color = imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagefttext($im, 20 , rand(-45,45), $x + $i*20, $y, $font_color, "ariblk.ttf", $char);
}
//生成影象
imagepng($im);
//銷燬圖片
imagedestroy($im);//通常與生成圖片連用
?>
補充幾道練習題:
補充: