<?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

最新文章

  1. 如何静态添加toolbar到datagrid
  2. oracle SQLPLUS 常用set设置
  3. RequireJS入门(一) 转
  4. EBS查询用户客户化的文件配置
  5. OpenCV学习 7:图像形态学:腐蚀、膨胀
  6. 【http转https】其之一:腾讯云 DV SSL证书申请实验
  7. IO网络模型
  8. swoole多端口监听
  9. 1、minimum-depth-of-binary-tree
  10. Java标识符和关键字(static,final,abstract,interface)
  11. MySQL的Auto-Failover功能
  12. LeetCode 193. Valid Phone Numbers
  13. MyBatis insert 返回主键的方法
  14. nest(inner) class
  15. [转]MVC 经验总结_序
  16. Android已上线应用开源分享中(第二季)
  17. 简单理解SNAT回流中的概念:路由器怎么知道外网返回的数据是局域网中哪台主机的
  18. 关于shared pool的深入探讨(四)
  19. java中List和Array相互转换
  20. Dubbo之生产者

热门文章

  1. 正确使用SQLCipher来加密Android数据库
  2. C#-System.Dynamic.ExpandoObject
  3. robot framework 怎么验证搜索无记录,页面元素不存在
  4. WebService 规范
  5. Yarn介绍(设计理念与基本架构)
  6. URLErro和HTTPError
  7. RestFramework之认证组件
  8. C++——overloading
  9. 【OF框架】新建库表及对应实体,并实现简单的增删改查操作,封装操作标准WebApi
  10. SpringBoot配置HTTPS,并实现HTTP访问自动转HTTPS访问