PHP2014.5.14的总结:

 

1:生成随机数

    <?php   

        session_start();

       //生成4个随机数   

        $arr = array(       

        "A","B","C","D","E","F","G","H","J","K","L","M",      

         "N","P","Q","R","S","T","U","V","W","X","Y","Z",  

            "0", "1","2","3","4","5","6","7","8","9");      

         $rand="";       

            for($i=0;$i<4;$i++){    

               $rand .= $arr[rand(0,count($arr)-1)];  //生成随机数      

           }

            $_SESSION['check_pic'] = $rand;

         //生成图片:imagecreatetruecolor(创建一张增彩色图片)    

         $img=imagecreatetruecolor(100,30);

         //生产颜色

           (1):当第一次调用生成颜色的方法,是生成背景颜色,默认是黑色

           //如果想自定义颜色,就要用到imagefill函数   

              $bg=imagecolorallocate($img,189,196,220);   

              imagefill($img,0,0,$bg);

          (2):第二次调用这个方法,是可以生成图片上面的文字或者其他样式的颜色  

               $te=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));

                $te2=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));   

              $te3=imagecolorallocate($img,rand(0,255),rand(0,255),rand(0,255));

        //在图片上面生成文字:(第一个值是图片,第二个值是字体的大小,第三个值是横坐标,第四一个值是纵坐标,第五一个值是生成的字,第六一个值是颜色)

          // imagestring($img,rand(5,10),rand(3,70),rand(3,15),$rand,$te);

                $posX =rand(6,45);   

                  for($i=0;$i<4;$i++){    

                       $posY=rand(2,15);       

                      //substr:返回字符串的子串     

                       imagestring($img,rand(2,5),$posX,$posY,substr($rand,$i,1),$te);      

                       $posX+=rand(8,25);  

             }

        //生成干扰线,就是画线   

            $posLineX1=rand(6,30);    

            $posLineX2=rand(30,60);

         //画4条线    

          for($i=0;$i<5;$i++){       

                $posLineY1=rand(2,10);      

                 $posLineY2=rand(11,28);     

          //生成干扰线(第一个值是图片,第二个值是开始的横坐标,第三个值是开始的的坐标,第四个值是结束的横坐标,第五个值是结束的纵坐标,第六一个值是颜色)                     imageline($img,$posLineX1,$posLineY1,$posLineX2,$posLineY2,$te2);     

                   $posLineX1+=rand(30,60);    

                  $posLineX2 +=rand(61,98);  

       }

      //生成点    

            for($i=0;$i<50;$i++){      

              //生成点(第一个值是图片,第二个值是随机在横坐标生成点,第三个值是随机在纵坐标生成点,第四一个值是颜色)    

                 imagesetpixel($img,rand(2,100),rand(0,50),$te3);     }

              //要把php当成图片输出,必须给文件一个头申明

              header("Content-type:image/jpeg");

              //最终生成图片    

            imagejpeg($img);

         ?>

 

  2:定义常量(两种)
       (1):define():随便定义在哪里
       (2):const():只能定义在最前面

 

  3:想在函数里用全局变量必须用global申明一下
      例:$conn = ""; //全局变量
          function get_conn(){
              global $conn;
              $conn = mysql_connect(HOST,USER,PWD) or die(mysql_error());
              mysql_select_db("bbs",$conn);
              mysql_query("set names 'utf8'");
      }

 

  4:调用函数(两种方法):
       (1):require_once("function.php");
          (2):include("mysql.php");

 

  5:函数的参数不只有一个可以有多个

 

  6:explode():把字符串分割成数组;  

   implode():把数组分割成字符串

       例:$arr = array(1,2,3,4,5);   

          $str = "1982-4-2";   

           test1($str,$arr);

        function test1($str1="",$str2=array()){    

         //把数组分割成字符串 implode   

          //下个这个方法的意思是:$str2应该是个数组    

         //然后把这个数组按照逗号来分割组成一个新的字符串   

          $s1 = implode(",",$str2);

          //    echo $s1;

           //把字符串分割成数组 explode    

        //这个函数的意思就是:首先$str1是一个字符串,这个字符串是按照一个规格组装出来的   

           //这个规格就是必须符合前面第一个参数的样式    

        $s2 = explode("-",$str1);

            print_r($s2);

       }

 

   7:函数的参数默认值

      例:test2("test");

          //函数的默认值   

       function test2($db="bbs"){    

      $conn = mysql_connect(HOST,USER,PWD) or die(mysql_error());      

         mysql_select_db($db,$conn);    

      mysql_query("set names 'utf8'");  

     }

 

  8:vsprintf():把一个数组格式化字符串,可以用你自己想用的格式化
     
例:$arr=[1,2,3];
         echo vsprintf("%d-%d-%02d",$arr);

 

  9:调用自己的时间格式化方法
      例:function formatDateTime($date){
         $arr = explode("-",$date);
         $str = vsprintf("%04d-%02d-%02d",$arr);
         return $str;
        }
       $time = formatDateTime("99-8-8");
      echo $time;

 

  10: func_num_args():获取传过来的数量    

        func_get_args():获取所有传入的参数,返回的是一个数组   

      例:  //获取函数全部参数  

          test4("select * from users where userName=?","pangpang");

         //获取传过来的所有参数  function test4(){   

            //获取传过来参数的数量       

           $num = func_num_args();    

          echo $num;

 

            //获取所有传入的参数,返回的是一个数组       

        $arr = func_get_args();        

        var_dump($arr);

     }

 

 

  11:str_replace:替换   

      例:  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;   

    }

 

posted @ 2014-05-14 21:46  若有似无的小偏执  阅读(140)  评论(0编辑  收藏  举报