前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PHP全栈学习笔记32

PHP全栈学习笔记32

作者头像
达达前端
发布2019-07-03 10:28:53
9400
发布2019-07-03 10:28:53
举报
文章被收录于专栏:达达前端
代码语言:javascript
复制
<?php
$i = 0;
do {
 echo $i;
} while ($i > 0);
?>
代码语言:javascript
复制
for (表达示1; 表达示2; 表达示3){
        需要执行的代码段
}
代码语言:javascript
复制
<?php
for ($i = 1; $i <= 10; $i++) {
    if($i == 4){
            break;
    }
    echo '分手后第'.$i.'年,我全都忘了你的样子<br />';
}
?>
代码语言:javascript
复制
<?php
for($i=0; $i<100; $i++) {
 echo '第'. $i .'11<br />';
 if($i == 17){
 goto end; 
 }
}
end:
echo '22';
?>
代码语言:javascript
复制
<?php
goto wan;
echo '11';

wan:
echo '12';
?>
代码语言:javascript
复制
<?php
function test( $arg = 10){
       echo $arg;
}
test();
test(88);
?>
代码语言:javascript
复制
<?php
function test( $a , $b = 20 , $c = 30){
       echo $a + $b + $c;
}
test( 1 , 2 , 3 );
?>
代码语言:javascript
复制
<?php
$hello = 10;
function demo( $hello ){
   $hello = 250;
   echo $hello + $hello;
}
demo($hello);
echo $hello;
?>
代码语言:javascript
复制
<?php
function demo(){
   echo 111;
   return;
   echo 222;
}
demo();
?>
代码语言:javascript
复制
<?php
function php_cn(){
   $foo = 5;
   $bar = 6;
   $result =  $foo + $bar;
   return $result;
}
$piao = php_cn();
echo $piao;
?>
代码语言:javascript
复制
<?php
function demo(){
 echo '天王盖地虎';
}
function test(){
 echo '小鸡炖蘑菇';
}

$fu = 'demo';
$fu();
?>
代码语言:javascript
复制
<?php 
$hello = 'world';
$world = '你好';
//输出的结果为:你好
echo $$hello; 
?>

php自定义函数之匿名函数 所谓匿名,就是没有名字。 匿名函数,也就是没有函数名的函数。

变量函数式的匿名函数

代码语言:javascript
复制
<?php
$greet = function($name)
{
 echo $name.',你好';
};
$greet('11');
$greet('22');
?>

内部函数,是指在函数内部又声明了一个函数。

代码语言:javascript
复制
<?php
function hello(){
 $GLOBALS['que'] = '12';
 echo '3<br />';
}
hello();
echo $que;
?>
代码语言:javascript
复制
<?php
$hello = 10;

echo $GLOBALS['hello'].'<br />';

$GLOBALS['hello'] = '我爱你';

echo $hello;

?>
代码语言:javascript
复制
<?php
$one = 10;
function demo(){
   $two = 100;
   $result = $two + $GLOBALS['one'];
   return $result;
}
//你会发现结果变成了110
echo demo();
?>
代码语言:javascript
复制
<?php

function hello(){
   $GLOBALS['que'] = '111';
   echo '你调了一下函数hello<br />';
}
hello();
echo $que;

?>
代码语言:javascript
复制
<?php

$a = 10;

$b = &$a;

$a = 100;

echo $a.'---------'.$b;
?>
代码语言:javascript
复制
<?php

$foo = 100;

//注意:在$n前面加上了&符
function demo(&$n){

       $n = 10;

       return $n + $n;

}

echo  demo($foo).'<br />';

//你会发生$foo的值变为了10
echo $foo;

?>

php 数学常用函数

image.png

获取时期时间信息函数 1.时区

代码语言:javascript
复制
2.世界时

3.unix时间戳

设置时区的函数为: 1).date_default_timezone_get() 2).date_default_timezone_set()

代码语言:javascript
复制
<?php
echo date_default_timezone_get ();
?>
代码语言:javascript
复制
<?php

//定义一下时区常量,以后你可以放到配置文件里
define('TIME_ZONE','Asia/shanghai');

//执行函数
date_default_timezone_set(TIME_ZONE);

echo date('Y-m-d H:i:s');

?>

time()获取当前的unix时间戳

代码语言:javascript
复制
<?php
   $time=time();
   print_r( $time);
?>
代码语言:javascript
复制
<?php
echo date('Y年m月d日');
?>
代码语言:javascript
复制
<?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可以判断一个输出的日期是否有效。

函数的语法格式如下:

代码语言:javascript
复制
bool checkdate ( int $month , int $day , int $year )

获取本地化时间戳函数

代码语言:javascript
复制
mktime()函数可以对一个日期和时间获得一个本地化时间戳
代码语言:javascript
复制
<?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 />";
?>
代码语言:javascript
复制
<?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数组与数据结构

代码语言:javascript
复制
<?php

$minren = array(
 '杨幂',
 '王珞丹',
 '刘亦菲',
 '黄圣依',
 '范冰冰'
 );
$minren[5] = '范爷';
$minren[2] = '亦菲';
echo '<pre>';
var_dump($minren);
echo '</pre>';
?>
代码语言:javascript
复制
int count ( mixed $变量)
代码语言:javascript
复制
<?php

list($one , $two , $three) = array('张三' ,'李四' ,'王五');

//再次声明:单引号不结释变量,所以输出的是字符串$one
echo '$one----'.$one.'<br />';
echo '$two----'.$two.'<br />';
echo '$three----'.$three.'<br />';

?>
代码语言:javascript
复制
array_shift 弹出数组中的第一个元素
array_unshift   在数组的开始处压入元素
array_push  向数组的末尾处压入元素
array_pop   弹出数组末尾的最后一个元素
current 读出指针当前位置的值
key 读出指针当前位置的键
next    指针向下移
prev    向上移
reset   指针到开始处
end 指针到结束处
代码语言:javascript
复制
array_rand()    从数组中随机抽取一个或多个元素,注意是键名   
array_unique()  删除重复值,返回剩余数组    
sort()  按升序对给定数组的值排序,不保留键名  
rsort() 对数组逆向排序,不保留键名   
asort() 对数组排序,保持索引关系    
arsort()    对数组逆向排序,保持索引关系  
ksort() 按键名对数组排序    
krsort()    将数组按照键逆向排序  
natsort()   用自然顺序算法对数组中的元素排序    
natcasesort()   自然排序,不区分大小写 
array_filter()  去掉数组中的空元素或者预定元素 
extract 将键变为变量名,将值变为变量值
代码语言:javascript
复制
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() 返回一个元素顺序相反的数组

原子是正则表达示里面的最小单位

代码语言:javascript
复制
\d  匹配一个0-9
\D  除了0-9以外的所有字符
\w  a-zA-Z0-9_
\W  除了0-9A-Za-z_以外的所有字符
\s  匹配所有空白字符\n \t \r 空格
\S  匹配所有非空白字符
[ ] 指定范围的原子
代码语言:javascript
复制
<?php
 //创建了一个临时文件
 $handle = tmpfile();

 //向里面写入了数据
 $numbytes = fwrite($handle, '写入临时文件');

 //关闭临时文件,文件即被删除
 fclose($handle);

 echo '向临时文件中写入了'.$numbytes . '个字节';
?>
代码语言:javascript
复制
<?php
 //旧文件名
 $filename = 'copy.txt';

 //新文件名
 $filename2 = $filename . '_new';

 //修改名字。
 copy($filename, $filename2);
?>
代码语言:javascript
复制
<?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文件

代码语言:javascript
复制
<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文件上传的步骤

代码语言:javascript
复制
<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文件上传表单注意事项

代码语言:javascript
复制
<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>
代码语言:javascript
复制
<?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 '不是上传文件';
 }

}
?>
代码语言:javascript
复制
<?php 
var_dump($_FILES); //打印$_FILES查看数组结构 
?>

php文件上传进度处理

代码语言:javascript
复制
<?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图像处理

代码语言:javascript
复制
<?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开发验证码

代码语言:javascript
复制
<?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));
}

?>
代码语言:javascript
复制
<?php
//关闭错误
error_reporting(0);

//读取一个不存在的文件,显示错误

//显示错误
error_reporting(E_ALL & ~ E_NOTICE);
?>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.05.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • php文件上传的步骤
  • php文件上传表单注意事项
  • php文件上传进度处理
  • PHP图像处理
  • php开发验证码
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档