-
<?php header("content-type:text/html;charset=utf-8"); /** * 默认产生可定位数的随机码 * type=1 数字 * type=2 字母 * type=3 数字+字母 */ function codes($type,$length){ $code = ''; //生成一个10个是数字,其余是字母的数组 $codearr = array_merge(range("0","9"),range("a","z"),range("A","Z")); switch ($type){ case '1': //全数字 for ($i=0;$i<$length;$i++){ $code .= $codearr[rand(0,9)]; } break; case '2': //全字母 for ($i=0;$i<$length;$i++){ $code .= $codearr[rand(10,count($codearr)-1)]; } break; case '3': //混合 for ($i=0;$i<$length;$i++){ $code .= $codearr[rand(0,count($codearr)-1)]; } break; } return $code."<br/>"; } echo codes('1',7); echo codes('2',6); echo codes('3',8); ?>
查看全部 -
//验证码练习 function codeArr($codeleg=4){ // 全字母 // $resArr=range("a","z"); // 全数字 // $resArr=range("0","9"); // 数字+字母 $resArr=array_merge(range(0, 9), range('a', 'z')); $arrleg=count($resArr)-1; $resRand=rand("0",$arrleg); echo $resArr[$resRand]; --$codeleg; if ($codeleg>0) { codeArr($codeleg); } } // codeArr(); echo '随机验证码是:'; echo codeArr(4).'<br>';查看全部
-
include/include_once当包含文件不存在时,只抛出警告,后面程序继续执行;
require/require_once当包含文件不存在时,会导致致命错误,程序退出;
include/require如果重复包含文件,可能会出现函数重复定义的错误;
查看全部 -
递归的详细注释说明查看全部
-
递归函数的说明
查看全部 -
PHP中的语言结构详解
1.什么是语言结构
语言结构:就是PHP语言的关键词,语言语法的一部分;它不可以被用户定义或者添加到语言扩展或者库中;它可以有也可以没有变量和返回值。
2.语言结构执行速度快的原因
函数都要先被PHP解析器(Zend引擎)分解成语言结构,所以,函数比语言结构多了一层解析器解析,速度就相对慢了
3.php中语言结构有哪些
echo()
print()
die()
isset()
unset()
include(),注意,include_once()是函数
require(),注意,require_once()是函数
array()
list()
empty()
4.怎样判断是语言结构还是函数
使用function_exists
eg:function check($name){ if(function_exists($name)){ echo $name.'为函数'; }else{ echo $name.'为语言结构'; } }1234567
5.语言结构与函数的区别
1.语言结构比对应功能的函数快
2.语言结构在错误处理上比较鲁棒,由于是语言关键词,所以不具备再处理的环节
3.语言结构不能在配置项(php.ini)中禁用,函数则可以。
4.语言结构不能被用做回调函数备注:
php.ini中怎样禁用函数?
php.ini中查找 disable_functions =
在等于后添加函数名,多个函数名用,分割
比如
disable_functions =
exec,passthru,popen,proc_open,shell_exec,system,chgrp,chmod,chown查看全部 -
/*
*默认产生4位的数字的验证码
*type = 1 数字
*type = 2 字母
*type = 3 数字加字母
*可以改变验证码长度
* @param int $type 默认:1
* @param int $lenght 默认长度:4位数
*/
function getCode($type = 1, $lenght = 4){
$code = '';
$arr = [];
switch ($type) {
case '1':
$arr = array_merge(range(0, 9));
$arr_len = count($arr);
for($i=0; $i<=$lenght-1; $i++){
$mt = mt_rand(0, $arr_len-1);
$code .= $arr[$mt];
}
return $code;
break;
case '2':
$arr = array_merge(range('a', 'z'),range('A', 'Z'));
$arr_len = count($arr);
for ($i=0; $i<=$lenght-1; $i++) {
$mt = mt_rand(0, $arr_len-1);
$code .=$arr[$mt];
}
return $code;
break;
case '3':
$arr = array_merge(range(0, 9), range('a', 'z'), range('A', 'Z'));
$arr_len = count($arr);
for ($i=0; $i<=$lenght-1 ; $i++) {
$mt = mt_rand(0, $arr_len-1);
$code .=$arr[$mt];
}
return $code;
break;
}
}查看全部 -
面试必会
查看全部 -
echo是PHP语句,print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用)
print只能打印出简单类型变量的值(如int,string)
print_r可以打印出复杂类型变量的值(如数组,对象)1.echo
输出一个或者多个字符串。
2.print
和echo一样,速度比echo慢。3.print_r
打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。 记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。print_r通常用于打印变量的相关信息,通常在调试中使用。4.var_dump
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
5.var_dump和print_r的区别
var_dump返回表达式的类型与值而print_r仅返回结果,相比调试代码使用var_dump更便于阅读。print_r()和var_dump()的区别是:print_r()返回结果,var_dump()返回结果中带有类型
两者都可以输出array、mixed~查看全部 -
函数命名不可重名,创建函数的时候,需要检测一下此函数名是否存在。
return代表返回值,调用函数时。echo函数名就可以了;
必选参数,放在可选参数前面
如何理解必选参数:调用函数时必须设置值
如何理解可选参数:调用函数时,若不设置值,他会用默认值
查看全部 -
function checkCode($type=1,$len=4){ $code=''; switch ($type){ case 1: for ($i = 0; $i < $len; $i++) { $code.=rand(0,9); } break; case 2: for($i = 0; $i < $len; $i++){ if(rand(0,1)==0){ $code.=chr(rand(65,90)); }else{ $code.=chr(rand(97,122)); } } break; case 3: for($i = 0; $i < $len; $i++){ $ran=rand(0,2); if($ran==0){ $code.=chr(rand(65,90));//英文大写 }elseif($ran==1){ $code.=chr(rand(97,122));//英文小写 }else{ $code.=rand(0,9); } } break; } return $code; }查看全部
-
1、对include()语句来说,在执行文件时每次都要进行读取和评估;而对于require()来说,文件只处理一次(实际上,文件内容替换require()语句)。这就意味着如果可能执行多次的代码,则使用require()效率比较高。另外一方面,如果每次执行代码时是读取不同的文件,或者有通过一组文件迭代的循环,就使用include()语句。 2、报错 require() :如果文件不存在,会报出一个fatal error,脚本停止执行 include() : 如果文件不存在,会给出一个 warning,但脚本会继续执行 3、条件引用 include()与require()的功能相同,用法上却有一些不同,include()是有条件包含函数,而require()则是无条件包含函数。查看全部
-
pathinfo() 函数以数组的形式返回文件路径的信息。 pathinfo(path,options) path:规定要检查的路径。 options:可选。规定要返回的数组元素。默认是 all。 可能的值:PATHINFO_DIRNAME - 只返回 dirname 目录名 PATHINFO_BASENAME - 只返回 basename 基本名 PATHINFO_EXTENSION - 只返回 extension 扩展名查看全部
-
鸭梨同学 $string='abcdefghijklmnopqrstuvwxyz1234567890'; $code=''; for($i=1;$i<=4;$i++) { $code.=$string{mt_rand(0, strlen($string) - 1)}; } echo $code; [ 收起全文 ] 2017-03-14查看全部
-
如果函数A需要调用函数B,而发现函数B的代码实现与函数A完全相同,一次类推,此时就需要封装为递归函数 1、像PHP实现目录的遍历,目录的复制、删除非空目录操作必须通过递归函数实现 2、像无限极分类也可以通过递归实现 递归函数:通俗讲就是自己调用自己的函数,通过特定条件结束执行。 function test($i){ echo $i.'<br />'; --$i; if($i >= 0) { test($i); } }查看全部
举报