About_PHP_函数

关于验证码的完善:

//生成干扰线
$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。

 

 1 <?php
 2 // 示例 1
 3 $pizza = "piece1 piece2 piece3 piece4 piece5 piece6" ;
 4 $pieces = explode ( " " , $pizza );
 5 echo $pieces [ 0 ]; // piece1
 6 echo $pieces [ 1 ]; // piece2
 7 
 8 // 示例 2
 9 $data = "foo:*:1023:1000::/home/foo:/bin/sh" ;
10 list( $user , $pass , $uid , $gid , $gecos , $home , $shell ) = explode ( ":" , $data );
11 echo $user ; // foo
12 echo $pass ; // *
13 
14 ?>

 

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

 

 1 <?php
 2 function test1($str1="",$str2=array()){
 3     //把数组分割成字符串 implode
 4     //下个这个方法的意思是:$str2应该是个数组
 5     //然后把这个数组按照逗号来分割组成一个新的字符串
 6     $s1 = implode(",",$str2);
 7 //    echo $s1;
 8 
 9     //把字符串分割成数组 explode
10     //这个函数的意思就是:首先$str1是一个字符串,这个字符串是按照一个规格组装出来的
11     //这个规格就是必须符合前面第一个参数的样式
12     $s2 = explode("-",$str1);
13 
14     print_r($s2);
15 }
16 
17 //函数的默认值
18 function test2($db="bbs"){
19     $conn = mysql_connect(HOST,USER,PWD) or die(mysql_error());
20     mysql_select_db($db,$conn);
21     mysql_query("set names 'utf8'");
22 }
23 
24 function test3($str="hello world"){
25     echo $str;
26 }
27 
28 function formatDateTime($date){
29     $arr = explode("-",$date);
30     $str = vsprintf("%04d-%02d-%02d",$arr);
31     return $str;
32 }
33 
34 
35 //获取函数全部参数
36 //获取传过来的所有参数
37 function test4(){
38     //获取传过来参数的数量
39     $num = func_num_args();
40     //获取所有传入的参数,返回的是一个数组
41     $arr = func_get_args();
42 
43     var_dump($arr);
44 }
45 
46 function mysql_ping(){
47     //获取传入的所有参数的数组
48     $arr = func_get_args();
49     //获取第一个参数,在我们这个列子里面,第一个参数其实就是sql语句
50     $sql = $arr[0];
51     //传入的sql语句,其实开始是用?替代的变量的位置
52     //这里需要将变量转化为可以替换格式化字符串的'%s'这样的符号
53     $sql = str_replace("?","'%s'",$sql);
54 
55     //array_shift,是将数组最开始的元素移出。返回移出的值,然后数组剩下其余的部分
56     $values = array_shift($arr);
57 
58     $sql = vsprintf($sql,$arr);
59 
60     echo $sql;
61 }
62 
63 
64 
65 
66 ?>

 

posted @ 2014-05-14 22:02  moemiss  阅读(263)  评论(0编辑  收藏  举报