关于验证码的完善:

//生成干扰线
$posLineX1 = rand(12,50);
$posLineX2 = rand(50,110);
$posX = rand(10,50);
for($i=0;$i<5;$i++){
$posLineY1 = rand(2,10);
$posLineY2 = rand(10,30);
imageline($im,$posLineX1,$posLineY1,$posLineX2,$posLineY2,$two2);
$posLineX1 += rand(9,40);
$posLineX2 += rand(45,100);
} //生成点点
for($i=0;$i<100;$i++){
$two3 = imagecolorallocate($im,rand(0,239),rand(0,239),rand(0,239));
imagesetpixel($im, rand(7,150), rand(7,70),$two3);
} //文字位置不一样
$posX = rand(10,50);
for($i=0;$i<5;$i++){
$posY = rand(10,50);
imagestring($im,rand(3,5),$posX,$posY,substr($rand,$i,1),$two);
$posX += rand(8,30);
}

 

关于函数:

函数的作用是重复和调用;

<?php
function result(){
echo "hello!kitty";
}
?> <!--如果要调用result,直接用result();结果输出hello!kitty-->

 

定义常量我们经常用:const和define,const只可放在代码的最上面。

在函数里面用全局变量,要用global声明:

$conn = "";

function close(){
global $conn;
mysql_close($conn);
}

 

include("dbhelper.php");等同于require_once("function.php");

 

explode

 array explode(string $delimiter,string $string [,int $limit]);

此函数返回有字符串组成的数组,每个元素都是string的一个子串,它们被字符串delimiter作为界点分割出来;

delimiter:边界上的分隔字符。
string:输入的字符串。
limit:如果设置了 limit 参数并且是正数,则返回的数组包含最多 limit 个元素,而最后那个元素将包含 string 的剩余部分。

如果 limit 参数是负数,则返回除了最后的 -limit 个元素外的所有元素。

如果 limit 是 0,则会被当做 1。

 

 <?php
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6" ;
$pieces = explode ( " " , $pizza );
echo $pieces [ 0 ]; // piece1
echo $pieces [ 1 ]; // piece2 // 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh" ;
list( $user , $pass , $uid , $gid , $gecos , $home , $shell ) = explode ( ":" , $data );
echo $user ; // foo
echo $pass ; // * ?>

implode: 将一个一维数组的值转化为字符串

string implode ( string $glue , array $pieces )
string implode ( array $pieces )
glue 将一维数组的值连接为一个字符串。
glue:默认为空的字符串。
pieces:你想要转换的数组。 
//例子
<?php
$a1 = array("1","2","3");
$a2 = array("a");
$a3 = array(); echo "a1 is: '".implode("','",$a1)."'<br>";
echo "a2 is: '".implode("','",$a2)."'<br>";
echo "a3 is: '".implode("','",$a3)."'<br>"; ?>
<?php
$arr =array(1,2,3,4);
echo vsprintf("%d-%d",$arr);//输出1-2
echo vsprintf("%d-%d-%02d",$arr);//输出1-2-03
?>
 <?php
function test1($str1="",$str2=array()){
//把数组分割成字符串 implode
//下个这个方法的意思是:$str2应该是个数组
//然后把这个数组按照逗号来分割组成一个新的字符串
$s1 = implode(",",$str2);
// echo $s1; //把字符串分割成数组 explode
//这个函数的意思就是:首先$str1是一个字符串,这个字符串是按照一个规格组装出来的
//这个规格就是必须符合前面第一个参数的样式
$s2 = explode("-",$str1); print_r($s2);
} //函数的默认值
function test2($db="bbs"){
$conn = mysql_connect(HOST,USER,PWD) or die(mysql_error());
mysql_select_db($db,$conn);
mysql_query("set names 'utf8'");
} function test3($str="hello world"){
echo $str;
} function formatDateTime($date){
$arr = explode("-",$date);
$str = vsprintf("%04d-%02d-%02d",$arr);
return $str;
} //获取函数全部参数
//获取传过来的所有参数
function test4(){
//获取传过来参数的数量
$num = func_num_args();
//获取所有传入的参数,返回的是一个数组
$arr = func_get_args(); var_dump($arr);
} function mysql_ping(){
//获取传入的所有参数的数组
$arr = func_get_args();
//获取第一个参数,在我们这个列子里面,第一个参数其实就是sql语句
$sql = $arr[0];
//传入的sql语句,其实开始是用?替代的变量的位置
//这里需要将变量转化为可以替换格式化字符串的'%s'这样的符号
$sql = str_replace("?","'%s'",$sql); //array_shift,是将数组最开始的元素移出。返回移出的值,然后数组剩下其余的部分
$values = array_shift($arr); $sql = vsprintf($sql,$arr); echo $sql;
} ?>

About_PHP_函数的更多相关文章

  1. About_php_封装函数

    <?php //编写数据库操作的魔术函数 function mysql_bind(){ //首先我们不知道外面会传入多少个参数 //可以用func_get_args()方法来获取全部传入参数,这 ...

  2. About_PHP_数据类型&常用数组函数

    PHP数据类型总结: 1:Boolean 布尔类型 返回值就是true和false 特殊情况:(1)false (2)整型0的时候 (3)空字符串/字符串“0” (4)null 以上都会被返回fals ...

  3. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  4. 探究javascript对象和数组的异同,及函数变量缓存技巧

    javascript中最经典也最受非议的一句话就是:javascript中一切皆是对象.这篇重点要提到的,就是任何jser都不陌生的Object和Array. 有段时间曾经很诧异,到底两种数据类型用来 ...

  5. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  6. C++对C的函数拓展

    一,内联函数 1.内联函数的概念 C++中的const常量可以用来代替宏常数的定义,例如:用const int a = 10来替换# define a 10.那么C++中是否有什么解决方案来替代宏代码 ...

  7. 菜鸟Python学习笔记第一天:关于一些函数库的使用

    2017年1月3日 星期二 大一学习一门新的计算机语言真的很难,有时候连函数拼写出错查错都能查半天,没办法,谁让我英语太渣. 关于计算机语言的学习我想还是从C语言学习开始为好,Python有很多语言的 ...

  8. javascript中的this与函数讲解

    前言 javascript中没有块级作用域(es6以前),javascript中作用域分为函数作用域和全局作用域.并且,大家可以认为全局作用域其实就是Window函数的函数作用域,我们编写的js代码, ...

  9. 复杂的 Hash 函数组合有意义吗?

    很久以前看到一篇文章,讲某个大网站储存用户口令时,会经过十分复杂的处理.怎么个复杂记不得了,大概就是先 Hash,结果加上一些特殊字符再 Hash,结果再加上些字符.再倒序.再怎么怎么的.再 Hash ...

随机推荐

  1. Android ViewPager sharedpreferences

    http://www.cnblogs.com/dwinter/archive/2012/02/27/AndroidViewPager%E5%A4%9A%E9%A1%B5%E9%9D%A2%E6%BB% ...

  2. tyvj1098 任务安排

    描述 N个任务排成一个序列在一台机器上等待完成(顺序不得改变),这N个任务被分成若干批,每批包含相邻的若干任务.从时刻0开始,这些任务被分批加工,第i个任务单独完成所需的时间是Ti.在每批任务开始前, ...

  3. 巧用dimens适配多个分辨率

      让应用自动适配多个分辨率的屏幕,是每个android程序员的基本功,就好像前端工程师熟练编写CSS Hack一样.适配工作中一个重要的工作就是对页面的调整. 对于页面的适配,有很多的方法和技巧.比 ...

  4. jquery 用attr修改src 淡入淡出

    $("#wanwan").animate({ opacity: 'toggle' }, "slow", null, function () { $(" ...

  5. Segment set

    题目大意: 在一个平面上,给定N根线段,若某条线段与另一条线段相交,则将它们归于同个集合,给定k,问第k条线段所在的集合中线段的数量. 题目分析: 问题主要考察计算几何和并查集. 首先我们要判断两条线 ...

  6. nginx负载均衡基于ip_hash的session粘帖

    nginx负载均衡基于ip_hash的session粘帖 nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除 ...

  7. nginx笔记资料

    通配 hash 表 ngx_hash_init 实现注释:http://blog.csdn.net/gsnumen/article/details/7817396 ngx_hash_init之后的结构 ...

  8. 阿里云部署Java web项目初体验(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何在阿里云上安装JDK.Tomcat以及其配置过程.最后以一个实例来演示在 ...

  9. IOS 非ARC开发内存管理的几条规则

    关于ios内存管理.在开发过程中,内存管理很重要,我简单说明一下. 1.正确用法 UIView *v = [[UIView alloc] init]; //分配后引用计数为1 [self.view a ...

  10. quartz.net插件类库封装(含源码)

    1.前言 目录: 1.quartz.net任务调度:源码及使用文档 2.quartz.net插件类库封装 最近项目需要做一写任务作业调度的工作,最终选择了quartz.net这个插件,它提供了巨大的灵 ...