<?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; } echo demo($foo).'<br />'; //你会发生$foo的值变为了10
echo $foo; ?>

php 数学常用函数

获取时期时间信息函数

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以外的所有字符
\w a-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

PHP全栈学习笔记32的更多相关文章

  1. PHP全栈学习笔记12

    php简介,php历史,php后端工程师职业前景,php技术方向,php后端工程师职业体系介绍. php是世界上使用最广泛的web开发语言,是超文本预处理器,是一种通用的开源脚本语言,语法吸收了c语言 ...

  2. PHP全栈学习笔记7

    图形图像处理技术,gd库的强大支持,PHP的图像可以是PHP的强项,PHP图形化类库,jpgraph是一款非常好用的强大的图形处理工具. 在PHP中加载GD库 gd官方网址下载: http://www ...

  3. PHP全栈学习笔记18

    php基础知识,JavaScript,jQuery,ajax基础知识 linux基础知识,mysql数据库的基础与优化 程序设计,PHP框架基础知识,算法,逻辑思维,高并发 PHP基础知识 引用变量, ...

  4. python全栈学习笔记(二)网络基础之子网划分

    阅读目录 一.ip地址基本知识 1.1 ip地址的结构和分类 1.2 特殊ip地址 1.3 子网掩码 1.4 ip地址申请 二.子网划分 2.1 子网划分概念 2.2 c类子网划分初探 2.3 子网划 ...

  5. python全栈学习笔记(一)网络基础之网络协议篇

    阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...

  6. PHP全栈学习笔记29

    前言 这一章主要讲一讲PHP的背景,优势,PHP的环境搭建,书写和调式简单的PHP代码,如何解决简单的PHP错误等. 目录结构 PHP简介 PHP是面向对象,指令式编程,设计者是 拉斯姆斯·勒多夫 出 ...

  7. PHP全栈学习笔记13

    php与ajax技术 web2.0的到来,ajax逐渐成为主流,什么是ajax,ajax的开发模式,优点,使用技术.(ajax概述,ajax使用的技术,需要注意的 问题,在PHP应用ajax技术的应用 ...

  8. PHP全栈学习笔记17

    phpmyadmin教程 管理页进入phpmyadmin 打开C:\wamp\apps\phpmyadmin3.5.1下的配置文件:config.inc 修改密码 创建与修改数据库.数据表 字段类型 ...

  9. PHP全栈学习笔记16

    <?php $fileName = "php大师.test.php"; //补充程序,显示文件名(不包括扩展名) $start = strrpos($fileName, &q ...

随机推荐

  1. SSL 杂谈

    在电子邮件系统中的开发和维护中,由于安全性的需要,经常会遇到 SSL 相关的问题,这里整理下 SSL 的一些基础知识 什么是 SSL SSL (Secure Sockets Layer) 是一种在应用 ...

  2. Jackson之LocalDateTime转换,无需改实体类

    [问题] Demo: LocalDateTime dt = LocalDateTime.now(); ObjectMapper mapper = new ObjectMapper(); try { S ...

  3. consul客户端配置微服务实例名称和ID

    consul客户端必须配置微服务实例名称和ID,微服务启动的时候需要将名称和ID注册到注册中心,后续微服务之间调用也需要用到. 名称可以通过以下两种方式配置,优先级从高到低.两个都不配置则默认服务名称 ...

  4. jquery.marquee

    http://aamirafridi.com/jquery/jquery-marquee-plugin#examples <script src="/plugins/marquee/j ...

  5. hdu 2181.。。。

    哈密顿绕行世界问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. 如何判断当前修改过的datatable的某一列值是否为int型或double类型

    如何判断当前修改过的datatable的某一列值是否为int型或double类型 今天在做datatable数据验证时碰到要对datatable的列数据进行数据类型校验,因此记录一下本人校验的方法,如 ...

  7. iOS 动画基础-显式动画

    摘要 显式动画 属性动画 CABasicAnimation *animation = [CABasicAnimation animation];         [self updateHandsAn ...

  8. EntityFramework进阶(五)- 分页

    本系列原创博客代码已在EntityFramework6.0.0测试通过,转载请标明出处 我们创建分页信息类CommonPagedList,包含了字段总条数,总页数,当前页码,页大小,当前页数据. us ...

  9. 【ogg三】日常运维篇:清理归档日志,ogg进程注册服务,定期备份数据库

    清理归档日志 ogg使用需要开启归档日志,归档日志会随着时间的推移逐渐增多,占满空间,导致应用无法正常运行. 如果归档日志满了会报错 ORA-00257:archiver error解决办法 检查fl ...

  10. request-html模块 (上)

    requests-html模块 官方网站 Github网址 请求数据 from requests_html import HTMLSession session = HTMLSession() req ...