PHP全棧學習筆記32
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
for (表達示1; 表達示2; 表達示3){ 需要執行的程式碼段 }
<?php for ($i = 1; $i <= 10; $i++) { if($i == 4){ break; } echo '分手後第'.$i.'年,我全都忘了你的樣子<br />'; } ?>
<?php for($i=0; $i<100; $i++) { echo '第'. $i .'11<br />'; if($i == 17){ goto end; } } end: echo '22'; ?>
<?php goto wan; echo '11'; wan: echo '12'; ?>
<?php function test( $arg = 10){ echo $arg; } test(); test(88); ?>
<?php function test( $a , $b = 20 , $c = 30){ echo $a + $b + $c; } test( 1 , 2 , 3 ); ?>
<?php $hello = 10; function demo( $hello ){ $hello = 250; echo $hello + $hello; } demo($hello); echo $hello; ?>
<?php function demo(){ echo 111; return; echo 222; } demo(); ?>
<?php function php_cn(){ $foo = 5; $bar = 6; $result =$foo + $bar; return $result; } $piao = php_cn(); echo $piao; ?>
<?php function demo(){ echo '天王蓋地虎'; } function test(){ echo '小雞燉蘑菇'; } $fu = 'demo'; $fu(); ?>
<?php $hello = 'world'; $world = '你好'; //輸出的結果為:你好 echo $$hello; ?>
php自定義函式之匿名函式
所謂匿名,就是沒有名字。
匿名函式,也就是沒有函式名的函式。
變數函式式的匿名函式
<?php $greet = function($name) { echo $name.',你好'; }; $greet('11'); $greet('22'); ?>
內部函式,是指在函式內部又聲明瞭一個函式。
<?php function hello(){ $GLOBALS['que'] = '12'; echo '3<br />'; } hello(); echo $que; ?>
<?php $hello = 10; echo $GLOBALS['hello'].'<br />'; $GLOBALS['hello'] = '我愛你'; echo $hello; ?>
<?php $one = 10; function demo(){ $two = 100; $result = $two + $GLOBALS['one']; return $result; } //你會發現結果變成了110 echo demo(); ?>
<?php function hello(){ $GLOBALS['que'] = '111'; echo '你調了一下函式hello<br />'; } hello(); echo $que; ?>
<?php $a = 10; $b = &$a; $a = 100; echo $a.'---------'.$b; ?>
<?php $foo = 100; //注意:在$n前面加上了&符 function demo(&$n){ $n = 10; return $n + $n; } echodemo($foo).'<br />'; //你會發生$foo的值變為了10 echo $foo; ?>
php 數學常用函式

image.png
獲取時期時間資訊函式
1.時區
2.世界時 3.unix時間戳
設定時區的函式為:
1).date_default_timezone_get()
2).date_default_timezone_set()
<?php echo date_default_timezone_get (); ?>
<?php //定義一下時區常量,以後你可以放到配置檔案裡 define('TIME_ZONE','Asia/shanghai'); //執行函式 date_default_timezone_set(TIME_ZONE); echo date('Y-m-d H:i:s'); ?>
time()獲取當前的unix時間戳
<?php $time=time(); print_r( $time); ?>
<?php echo date('Y年m月d日'); ?>
<?php echo date('Y-m-d H:i:s'); ?>
getdate獲取當前系統時間
microtime()這個函式,能夠返回當前 Unix 時間戳和微秒數
PHP常用函式:
trim() 刪除字串兩端的空格或其他預定義字元
rtrim() 刪除字串右邊的空格或其他預定義字元
ltrim() 刪除字串左邊的空格或其他預定義字元
dirname() 迴路徑中的目錄部分
str_pad() 把字串填充為指定的長度
str_repeat() 重複使用指定字串
str_split() 把字串分割到陣列中
strrev() 反轉字串
wordwrap() 按照指定長度對字串進行折行處理
str_shuffle() 隨機地打亂字串中所有字元
parse_str() 將字串解析成變數
number_format() 通過千位分組來格式化數字
strtolower() 字串轉為小寫
strtoupper() 字串轉為大寫
ucfirst() 字串首字母大寫
ucwords() 字串每個單詞首字元轉為大寫
str_shuffle() 隨機地打亂字串中所有字元
parse_str() 將字串解析成變數
php日期驗證函式
checkdate可以判斷一個輸出的日期是否有效。
函式的語法格式如下:
bool checkdate ( int $month , int $day , int $year )
獲取本地化時間戳函式
mktime()函式可以對一個日期和時間獲得一個本地化時間戳
<?php //now為現在的當前時間 echo strtotime("now")."<br />"; //2000年9月10日 echo strtotime("10 September 2000")."<br />"; //當前時間加一天 echo strtotime("+1 day")."<br />"; //當前時間加一週 echo strtotime("+1 week")."<br />"; //當前時間加一週2天4小時2秒 echo strtotime("+1 week 2 days 4 hours 2 seconds")."<br />"; //下一個星期四 echo strtotime("next Thursday")."<br />"; //上一個星期一 echo strtotime("last Monday")."<br />"; ?>
<?php //開始時間 $time_start = microtime(true); //迴圈一萬次 for($i = 0 ; $i < 10000 ; $i++){ } //結整時間 $time_end = microtime(true); $time = $time_end - $time_start; echo "這個指令碼執行的時間為 $time seconds\n"; ?>
PHP陣列與資料結構
<?php $minren = array( '楊冪', '王珞丹', '劉亦菲', '黃聖依', '范冰冰' ); $minren[5] = '範爺'; $minren[2] = '亦菲'; echo '<pre>'; var_dump($minren); echo '</pre>'; ?>
int count ( mixed $變數)
<?php list($one , $two , $three) = array('張三' ,'李四' ,'王五'); //再次宣告:單引號不結釋變數,所以輸出的是字串$one echo '$one----'.$one.'<br />'; echo '$two----'.$two.'<br />'; echo '$three----'.$three.'<br />'; ?>
array_shift 彈出陣列中的第一個元素 array_unshift在陣列的開始處壓入元素 array_push向陣列的末尾處壓入元素 array_pop彈出陣列末尾的最後一個元素 current 讀出指標當前位置的值 key 讀出指標當前位置的鍵 next指標向下移 prev向上移 reset指標到開始處 end 指標到結束處
array_rand()從陣列中隨機抽取一個或多個元素,注意是鍵名 array_unique()刪除重複值,返回剩餘陣列 sort()按升序對給定陣列的值排序,不保留鍵名 rsort() 對陣列逆向排序,不保留鍵名 asort() 對陣列排序,保持索引關係 arsort()對陣列逆向排序,保持索引關係 ksort() 按鍵名對陣列排序 krsort()將陣列按照鍵逆向排序 natsort()用自然順序演算法對陣列中的元素排序 natcasesort()自然排序,不區分大小寫 array_filter()去掉陣列中的空元素或者預定元素 extract 將鍵變為變數名,將值變為變數值
range() 建立並返回一個包含指定範圍的元素的陣列。 compact()建立一個由引數所帶變數組成的陣列 array_fill()用給定的值生成陣列 array_chunk()把一個數組分割為新的陣列塊 array_merge()把兩個或多個數組合併為一個數組 array_slice()在陣列中根據條件取出一段值,並返回 array_diff()返回兩個陣列的差集陣列 array_search()在陣列中搜索給定的值,如果成功則返回相應的鍵名 array_splice()把陣列中的一部分去掉並用其它值取代 array_sum() 計算陣列中所有值的和 in_array()檢查陣列中是否存在某個值 array_key_exists()檢查給定的鍵名或索引是否存在於陣列中 shuffle()將陣列打亂,保留鍵值 count() 計算陣列中的單元數目或物件中的屬性個數 array_flip()返回一個鍵值反轉後的陣列 array_keys()返回陣列所有的鍵,組成一個數組 array_values()返回陣列中所有值,組成一個數組 array_reverse() 返回一個元素順序相反的陣列
原子是正則表達示裡面的最小單位
\d匹配一個0-9 \D除了0-9以外的所有字元 \wa-zA-Z0-9_ \W除了0-9A-Za-z_以外的所有字元 \s匹配所有空白字元\n \t \r 空格 \S匹配所有非空白字元 [ ] 指定範圍的原子
<?php //建立了一個臨時檔案 $handle = tmpfile(); //向裡面寫入了資料 $numbytes = fwrite($handle, '寫入臨時檔案'); //關閉臨時檔案,檔案即被刪除 fclose($handle); echo '向臨時檔案中寫入了'.$numbytes . '個位元組'; ?>
<?php //舊檔名 $filename = 'copy.txt'; //新檔名 $filename2 = $filename . '_new'; //修改名字。 copy($filename, $filename2); ?>
<?php $filename = 'demo.txt'; if (file_exists($filename)) { echo '$filename檔案的上次訪問時間是:' . date("Y-m-d H:i:s", fileatime($filename)); echo '$filename檔案的建立時間是: ' . date("Y-m-d H:i:s", filectime($filename)); echo '$filename檔案的修改時間是: ' . date("Y-m-d H:i:s", filemtime($filename)); } ?>
檔案上傳需要注意php.ini檔案
<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上傳檔案:<input type="file" name="upfile" /><br> <input type="submit" value="上傳" /></form> <?php //print_r($_FILES["upfile"]); if(is_uploaded_file($_FILES['upfile']['tmp_name'])){ $upfile=$_FILES["upfile"]; //獲取數組裡面的值 $name=$upfile["name"];//上傳檔案的檔名 $type=$upfile["type"];//上傳檔案的型別 $size=$upfile["size"];//上傳檔案的大小 $tmp_name=$upfile["tmp_name"];//上傳檔案的臨時存放路徑 //判斷是否為圖片 switch ($type){ case 'image/pjpeg':$okType=true; break; case 'image/jpeg':$okType=true; break; case 'image/gif':$okType=true; break; case 'image/png':$okType=true; break; } if($okType){ /** * 0:檔案上傳成功<br/> * 1:超過了檔案大小,在php.ini檔案中設定<br/> * 2:超過了檔案的大小MAX_FILE_SIZE選項指定的值<br/> * 3:檔案只有部分被上傳<br/> * 4:沒有檔案被上傳<br/> * 5:上傳檔案大小為0 */ $error=$upfile["error"];//上傳後系統返回的值 echo "================<br/>"; echo "上傳檔名稱是:".$name."<br/>"; echo "上傳檔案型別是:".$type."<br/>"; echo "上傳檔案大小是:".$size."<br/>"; echo "上傳後系統返回的值是:".$error."<br/>"; echo "上傳檔案的臨時存放路徑是:".$tmp_name."<br/>"; echo "開始移動上傳檔案<br/>"; //把上傳的臨時檔案移動到up目錄下面 move_uploaded_file($tmp_name,'up/'.$name); $destination="up/".$name; echo "================<br/>"; echo "上傳資訊:<br/>"; if($error==0){ echo "檔案上傳成功啦!"; echo "<br>圖片預覽:<br>"; echo "<img src=".$destination.">"; //echo " alt=\"圖片預覽:\r檔名:".$destination."\r上傳時間:\">"; }elseif ($error==1){ echo "超過了檔案大小,在php.ini檔案中設定"; }elseif ($error==2){ echo "超過了檔案的大小MAX_FILE_SIZE選項指定的值"; }elseif ($error==3){ echo "檔案只有部分被上傳"; }elseif ($error==4){ echo "沒有檔案被上傳"; }else{ echo "上傳檔案大小為0"; } }else{ echo "請上傳jpg,gif,png等格式的圖片!"; } } ?>
php檔案上傳的步驟
<form action="" enctype="multipart/form-data" method="post" name="uploadfile">上傳檔案:<input type="file" name="upfile" /><br> <input type="submit" value="上傳" /></form> <?php //print_r($_FILES["upfile"]); if(is_uploaded_file($_FILES['upfile']['tmp_name'])){ $upfile=$_FILES["upfile"]; //獲取數組裡面的值 $name=$upfile["name"];//上傳檔案的檔名 $type=$upfile["type"];//上傳檔案的型別 $size=$upfile["size"];//上傳檔案的大小 $tmp_name=$upfile["tmp_name"];//上傳檔案的臨時存放路徑 //判斷是否為圖片 switch ($type){ case 'image/pjpeg':$okType=true; break; case 'image/jpeg':$okType=true; break; case 'image/gif':$okType=true; break; case 'image/png':$okType=true; break; } if($okType){ /** * 0:檔案上傳成功<br/> * 1:超過了檔案大小,在php.ini檔案中設定<br/> * 2:超過了檔案的大小MAX_FILE_SIZE選項指定的值<br/> * 3:檔案只有部分被上傳<br/> * 4:沒有檔案被上傳<br/> * 5:上傳檔案大小為0 */ $error=$upfile["error"];//上傳後系統返回的值 echo "================<br/>"; echo "上傳檔名稱是:".$name."<br/>"; echo "上傳檔案型別是:".$type."<br/>"; echo "上傳檔案大小是:".$size."<br/>"; echo "上傳後系統返回的值是:".$error."<br/>"; echo "上傳檔案的臨時存放路徑是:".$tmp_name."<br/>"; echo "開始移動上傳檔案<br/>"; //把上傳的臨時檔案移動到up目錄下面 move_uploaded_file($tmp_name,'up/'.$name); $destination="up/".$name; echo "================<br/>"; echo "上傳資訊:<br/>"; if($error==0){ echo "檔案上傳成功啦!"; echo "<br>圖片預覽:<br>"; echo "<img src=".$destination.">"; //echo " alt=\"圖片預覽:\r檔名:".$destination."\r上傳時間:\">"; }elseif ($error==1){ echo "超過了檔案大小,在php.ini檔案中設定"; }elseif ($error==2){ echo "超過了檔案的大小MAX_FILE_SIZE選項指定的值"; }elseif ($error==3){ echo "檔案只有部分被上傳"; }elseif ($error==4){ echo "沒有檔案被上傳"; }else{ echo "上傳檔案大小為0"; } }else{ echo "請上傳jpg,gif,png等格式的圖片!"; } } ?>
php檔案上傳表單注意事項
<html> <head> <meta charset="utf-8" /> <title>單檔案上傳</title> </head> <body> <form action="file.php" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上傳"> </form> </body> </html>
<?php if ($_FILES['file']['error'] > 0) { switch ($_FILES['file']['error']) { //錯誤碼不為0,即檔案上傳過程中出現了錯誤 case '1': echo '檔案過大'; break; case '2': echo '檔案超出指定大小'; break; case '3': echo '只有部分檔案被上傳'; break; case '4': echo '檔案沒有被上傳'; break; case '6': echo '找不到指定資料夾'; break; case '7': echo '檔案寫入失敗'; break; default: echo "上傳出錯<br/>"; } } else { $MAX_FILE_SIZE = 100000; if ($_FILES['file']['size'] > $MAX_FILE_SIZE) { exit("檔案超出指定大小"); } $allowSuffix = array( 'jpg', 'gif', ); $myImg = explode('.', $_FILES['file']['name']); $myImgSuffix = array_pop($myImg); if (!in_array($myImgSuffix, $allowSuffix)) { exit("檔案字尾名不符"); } $allowMime = array( "image/jpg", "image/jpeg", "image/pjpeg", "image/gif", ); if (!in_array($_FILES['file']['type'], $allowMime)) { exit('檔案格式不正確,請檢查'); } $path = "upload/images/"; $name = date('Y') . date('m') . date("d") . date('H') . date('i') . date('s') . rand(0, 9) . '.' . $myImgSuffix; if (is_uploaded_file($_FILEs['file']['tmp_name'])) { if (move_uploaded_file($_FILEs['file']['tmp_name'], $path . $name)) { echo "上傳成功"; } else { echo '上傳失敗'; } } else { echo '不是上傳檔案'; } } ?>
<?php var_dump($_FILES); //列印$_FILES檢視陣列結構 ?>
php檔案上傳進度處理
<?php /* 開啟session。請注意在session_start()之前,請不要有想瀏覽器輸出內容的動作,否則可能引起錯誤。 */ session_start(); //ini_get()獲取php.ini中環境變數的值 $i = ini_get('session.upload_progress.name'); //ajax中我們使用的是get方法,變數名稱為ini檔案中定義的字首 拼接 傳過來的引數 $key = ini_get("session.upload_progress.prefix") . $_GET[$i]; //判斷 SESSION 中是否有上傳檔案的資訊 if (!empty($_SESSION[$key])) { //已上傳大小 $current = $_SESSION[$key]["bytes_processed"]; //檔案總大小 $total = $_SESSION[$key]["content_length"]; //向 ajax 返回當前的上傳進度百分比。 echo $current < $total ? ceil($current / $total * 100) : 100; }else{ echo 100; } ?>
PHP影象處理
<?php //建立圖片 $img = imagecreatetruecolor(500, 500); //分配顏色 $red = imagecolorallocate($img, 255, 0, 0); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); $pur = imagecolorallocate($img, 255, 0, 255); $yellow = imagecolorallocate($img, 121, 72, 0); //填充背景 imagefilledrectangle($img, 0, 0, 500, 500, $green); //畫對角線 imageline($img, 0, 0, 500, 500, $red); imageline($img, 500, 0, 0, 500, $blue); //畫圓 imagefilledellipse($img, 250, 250, 200, 200, $yellow); //圓中間畫矩形 imagefilledrectangle($img, 200, 200, 300, 300, $blue); //儲存圖片,圖片名為haha.jpg imagejpeg($img, 'haha.jpg'); //銷燬資源 imagedestroy($img); ?>
php開發驗證碼
<?php check_code(); function check_code($width = 100, $height = 50, $num = 4, $type = 'jpeg') { $img = imagecreate($width, $height); $string = ''; for ($i = 0; $i < $num; $i++) { $rand = mt_rand(0, 2); switch ($rand) { case 0: $ascii = mt_rand(48, 57); //0-9 break; case 1: $ascii = mt_rand(65, 90); //A-Z break; case 2: $ascii = mt_rand(97, 122); //a-z break; } //chr() $string .= sprintf('%c', $ascii); } //背景顏色 imagefilledrectangle($img, 0, 0, $width, $height, randBg($img)); //畫干擾元素 for ($i = 0; $i < 50; $i++) { imagesetpixel($img, mt_rand(0, $width), mt_rand(0, $height), randPix($img)); } //寫字 for ($i = 0; $i < $num; $i++) { $x = floor($width / $num) * $i + 2; $y = mt_rand(0, $height - 15); imagechar($img, 5, $x, $y, $string[$i], randPix($img)); } //imagejpeg $func = 'image' . $type; $header = 'Content-type:image/' . $type; if (function_exists($func)) { header($header); $func($img); } else { echo '圖片型別不支援'; } imagedestroy($img); return $string; } //淺色的背景 function randBg($img) { return imagecolorallocate($img, mt_rand(130, 255), mt_rand(130, 255), mt_rand(130, 255)); } //深色的字或者點這些幹 擾元素 function randPix($img) { return imagecolorallocate($img, mt_rand(0, 120), mt_rand(0, 120), mt_rand(0, 120)); } ?>
<?php //關閉錯誤 error_reporting(0); //讀取一個不存在的檔案,顯示錯誤 //顯示錯誤 error_reporting(E_ALL & ~ E_NOTICE); ?>
請點贊!因為你的鼓勵是我寫作的最大動力!

官方微信公眾號
吹逼交流群: 711613774

吹逼交流群