关于验证码的完善:

//生成干扰线
$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. tyvj1098 任务安排

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

  2. Socket通信(二)

    程序下载地址: http://download.csdn.net/detail/u010312811/9683748 1.基本流程 服务器:(1)用指定的端口号和服务器的IP建立一个EndPoint对 ...

  3. 【YEOMAN】执行yo命令,报EACCES: permission denied, mkdir '/root/.config/configstore'

    基础环境:CentOS7.Nodejs6.0之上,yo:1.8.4 在执行yo初始化webapp时,报错,错误内容如下: Error: EACCES: permission denied, mkdir ...

  4. wow经典台词

    永恒岛,磐皂在玄牛上场时喊:你能否独立山巅,任由风霜侵袭,直至沧海变为桑田,高山沉入海底?风刀霜剑,四面受敌.不动如山,亘古不移. 巫妖王:当一切结束,你会跪求我的宽恕...而我,会拒绝你! 伊利丹: ...

  5. TFS二次开发系列:一、TFS体系结构和概念

    TFS是Team Fundation Server的简称,是微软VSTS的一部分,它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的 ...

  6. Pyqt adb 获取Android手机屏幕

    adb的全称为Android Debug Bridge,就是起到调试桥的作用.adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会da ...

  7. Oracle 11g 新特性之Highly Available IP(HAIP)

    Redundant Interconnect with Highly Available IP (HAIP) 简介   从11.2.0.2开始,Oracle 的集群软件Grid Infrastruct ...

  8. Power BI for Office 365(二)Power Query

    在上一篇中我们看到了Power BI在移动端的支持,从这一篇起降依次介绍Power BI中的各个功能组件,此篇讲通过一个故事来介绍如何在Power Query中获取并且组织数据. 在这个系列中,我们将 ...

  9. 3D场景定位的一些资源

    利用多张影像对小物体进行拍摄,进而进行三维重建,是计算机视觉中的重要问题之一. 目前对此研究最全面的网站是:http://vision.middlebury.edu/mview/eval/ 目前最优秀 ...

  10. java Collection.shuffle()随机打乱一个顺序数组

    如何打乱一个顺序的数组,其实集合的帮助类Collection就有现成的方法可用,而且效率还蛮高的,总比自定义随机数等等方法要好很多.其实乱序就这么简单,步骤如下: 1. 将一个顺序排列的数组添加到集合 ...