php笔记

=========================================================
http://e-learning.51cto.com/video/14500
=========================================================
访问表单变量
<metahttp-equiv="Content-Type" content="text/html;charset=gbk">
<form method="post" action="Demo11.php">
    姓名:<input type="text" name="username" value="song"/>
          <input type="submit" value="提交"/>
</form>
=======================================================================
Demo11.php
<?php
    $username=$_post['username']
    echo "这个学生是:".$username
    
?>
===========字符串的插入======================================
双引号提供了最大的灵活性,原因是变量和转移序列都会得到相应的解析
<?php
$userName="SONG";
echo "his name is $uerName"
echo"<br/>"
echo "他的名字叫$userName,他19岁了,已经长大成人了!";
echo "他的名字叫$userName"."他19岁了,已经长大成人了!";
echo "<br/>"
echo "虽然他的QQ号有 很多女生,\n但一个都不属于他";   // \n换行符(编辑器)

?>
单引号会按照声明的原样解释,解析字符串时,变量和转义序列都不会进行解析。
\t   制表符
\n    换行符
\r    回车
=====================操作符===============
<?php
$a=5;
$b=6;

#$c=$a+$b;
#echo $c;

$a+=$b; //a=a+b;
echo $a;
?>
===   恒等  数值与类型相等
&& 与同时满足时为真
||  满足一个为真
//开发中最好将错误暴露出来
$a=@(100/0);    //错误一致操作符
为了避免优先级混乱 可以加括号
================================操作符和控制结构=========================================
<?php
$userAge = 19;
if($userAge>14){
echo "成年了";
}elseif($userAge>25){
echo '可以了!'
}elseif($userAge>30){
echo '可以回家了'
}
==================================switch语句==============================
<?php
$weekday=1;
switch ($weekday){
case 1:
    echo '今天星期一';
case 2:
    echo '今天星期二';
    }
    break;
    default: 
    echo '无聊在家';
?>              //块语句
==============================while======================
<?php

$a=10;
while($>0){
echo $a;
    $--;
    echo'<br/>';
    }
?>
========================for=================================
<?php\
for($a=10;a>0;$a--){
echo $a;
echo '<br/>';
}
echo "结束了"
?>
====================do while===============================
<?php
$a=10;
do{
echo $a;
$a--;
echo '<br/>';
}while($a>0)
?>
=====================================break======================
<?php
for ($i = i;$i<=10;$i++){
if($i==5){
break;     //中途退出当前循环,后面会执行       
}            continue //退出当前本次的循环 继续循环
echo $i.'<br/>';
}
?>
=======================数学运算===================================
<?php
$a='5';
$b=7+$a;
echo $b;                //a无法转换为数字
?>
--------------------------
$a='abc';
echo is_numeric($a);                   //检测是否为数字或数字字符串
-------------------------
<php?
if(is_int(5){
echo 'a是一个整数';
}else{
echo 'a不是一个整数';
}
?>
=============================随机数======mt_rand----(speed)=================================
rand   产生随机整数 
<?php
//echo  rand(0,10);
//echo mt_rand(0,100)
echo   getrandmax();   //最大随机值
?>
----------------------------format--------------------------------------

<?php
$i=1234;
$b = number_format($i,2,".",",");          //小数位保留两位      .小数分割
echo $b;
>
abs()   绝对值
floor ()舍去法取整
ceil()进一法取整
round()四舍五入
pow(2,2)   2的2次方
bcadd()  高精度

---------------------10-----数组----------------------------------
一组有某种共同特性的元素
<?php
$usernaema=array('李彦宏','周宏伟','马云','俞敏洪','李开复');
echo $userName[2];
?>
-------------------------------------------------------------------
print_r($userName)    //变量数值
<?php
$uerName=range(1,10)
print_r($uerName);
?>
----------------------------
$letters = range('a,z');
print_r($letters);
---------------------
$username[5]='李艳辉'      //改变数组的值
echo $username
============================
<?php
$username= array('李彦宏','周宏伟','马云','俞敏洪','李开复');
for($i=0;$i<count($usernaem);$i++){
echo $i.---.$username[$i];
echo'<br/>';
}

?>
===============================================
foreach  //不需要考虑key   只能用于数组遍历
foreach($username as $key=>$value){
echo  $value.''<br/>
}
---------------------
if(is_array($username)){
foreach($username as $key=> $value){
echo $key.'---'.$value'<br/>';
    } 
}else{

echo $username;
}
?>
==============================数组==============================================================
<?php
//如果不去声明key
$username= array(''baiud'=>'李彦宏','taobao'=>'马云','xindongfang'=>'俞敏洪');
//自定义键数组
print_r($username)
echo $username['baidu'];   //通过键去打印

?>
----------------------add-----------
<?php
$userage=array('吴起'=>19);
echo $userage['吴起'];
//追加数组
$userage['李艳辉']=23;
$userage['马化腾']=27;
//echo $userage['李艳辉'];
print_r($userage)
?>
-------------------add-----------------
<?php
$userage['吴起']=19;
echo $userage['吴起'];
//追加数组
$userage['李艳辉']=23;
$userage['马化腾']=27;
//echo $userage['李艳辉'];
print_r($userage);

//这里无法使用for循环 只能用foreach遍历
foreach($username as $key=>$value){  //一般要打印下标

echo 【$key.'-----'】.$value.'<br/>'
}
?>
------------------each  //返回数组中当前的键----------------------
<?php
//$userage['李艳辉']=23;
//$userage['马化腾']=27;
//$userage['吴起']=19;
$userage=array('吴起'=>12,'李艳辉'=>34,'胡新鹏=>56');
print_r($userage);
//each  ---返回数组中当前的键/值并将数组的指针向前移动一步
//默认情况下,指针是指向第一个
//如果each($userage),那么获取的就是第一个键值对'吴起=>'
//each这个函数返回的是一个数组,
//将第一个键值对获取到,然后包装成一个新数组


echo each($userage);
print_r(each($userage));
//相当于$a=array([0]=>吴起,[1]=>19,[value]=>19,[key]=>吴起)
each($userage);这是第一步,将19,吴起取出,包装成新数组
$a=each($userage);  //这个是第二步了,指针已经下移
echo $a[0];    //will see wuqi
$a=each($userage);
echo $a[1];            //will print 27
echo $a['value'];  
?>
-------------------用each将数组所有元素循环出来-----------------------------
<?php
$userage=array('吴起'=>12,'李艳辉'=>34,'胡新鹏=>56');
//$a=each($userage);
//echo $a[0].'--'.$a['value']'<br/>';
//$a=each($userage);
//echo $a[0].'--'.$a['value']'<br/>';
//$a=each($userage);
//echo $a[0].'--'.$a['value']'<br/>';

//echo !!each($userage);    //说明有数据,有数据,用布尔值得理念就是true,两个感叹号转换为布尔值
//echo !!each($userage);    
//echo !!each($userage);    
//echo !!each($userage);      //第四个为假
  

while(!!each($userage)){                  //!转换为布尔值
echo $a['key'].'---'.$a['value'].'<br/>'
}
?>
-------------------------------------list------------------------------------------------
// 把数组中的值赋给一些变量 
<?php
//$a=array('aaaa','bbbb','cccc','dddd');
print_r($a);
// list把数组中的值赋给一些变量,list 只认识下标   自定义的字符串是无法识别的 只认识 0 1
//list($var1,$var2,$var3,$var4)=$a;    //a的值给  var 1 2 3 4
//echo $var1;  //print aaa
//echo $var2;  //print bbb
---------------------------------
$userage=array('吴起'=>12,'李艳辉'=>34,'胡新鹏=>56');  //无法识别
so
$userage=array('12','34,'56');
list($a,$b,$c)=$userage;
--------------------
$userage=array('吴起'=>12,'李艳辉'=>34,'胡新鹏=>56');
list($name,$age)=$($userage);

echo $name;
echo $age;
----------------------------------------reset----------------------------------------------
$userage=array('吴起'=>12,'李艳辉'=>34,'胡新鹏=>56');
$a = each($userage);  //吴起
echo $a['key'];
$a = each($userage);   //李艳辉
echo $a['key'];
//第三次想取第一条数据 将数组的 指针 调到第一个指针上
//reset 将数组的指针 指向第一单元
rset($userage);
$a=each($userage);     //吴起
echo $a['key'];
each($userage);      //隔一部
each($userage);
$a=each($userage);     //吴起
echo $a['key'];     //胡新鹏
---------------------------------------array_unique-------------------------------------------------------
$userage=array('吴起'=>12,'李艳辉'=>34,'胡新鹏=>56','王瑞键'=>34);
print_r*($userage);
echo '<br/>'
//array_unique        --移除数组中重复的值
//创建了一个新数组,新的ok  旧的不变   

$a=array_unique($userage);
--------------------------array_filp----------------------------------------------------------------------------------
//变换数据中的键和值
$userage=array('吴起'=>12,'李艳辉'=>34,'胡新鹏=>56');
//array_filp 变换数据中的键和值  不改变本体
$newuserage=array_filp($userage);
print_r($newuserage)
----------------------------------------二维表--------数组里的数组------------------------------------------------------
$product=array(
    array("苹果",6,28.8),
    array("猪肉",2,38.8),
    array("饼干",3,48.8),

);
<?php
$product=array(
    array("苹果",6,28.8),         【0】
    array("猪肉",2,38.8),        【1】
    array("饼干",3,48.8),        【2】

);
//print_r($product);
//print_r($product[0]);         array("苹果",6,28.8),
//print_r($profduct[0][0]);           苹果
//print_r($profduct[0][2]);        28.8

echo "|".$profduct[0][0]."|".$profduct[0][1]."|"."$profduct[0][2]."|<br/>";
echo "|".$profduct[1][0]."|".$profduct[1][1]."|"."$profduct[1][2]."|<br/>";
echo "|".$profduct[2][0]."|".$profduct[2][1]."|"."$profduct[2][2]."|<br/>";

//首先求出外面数组的长度
//echo count($product);   3
//求出内数组的长度
//echo count($product[0/1/2]);
for($i=0;$i<count($product);$i++){
    for($j=0;$j<count($product[$i])$j++){
    echo $product[$i][$j].'|';  
    }
//echo $product[$i].'<br/>';                //三个array
echo '<br/>'; 
}
?>
-------------------------------------------------------------------------------

$product=array(
    array('产品名'=>"苹果",'数量'=>6,'价格'=>28.8),         【0】
    array('产品名'=>"猪肉",'数量'=>2,'价格'=>18.8),
    array('产品名'=>"饼干",'数量'=>3,'价格'=>48.8),
    //for($i=0;$i<count($product);$i++){
    //    for($j=0;$j<count($product[$i])$j++){                 不是 0 1 2  
    //    echo $product[$i][$j].'|';  
    //    }
    echo $product[$i].'<br/>';                //三个array
    //echo '<br/>'; 
  --------------------foreach--------------------
  for($i=0;$i<count($product);$i++){
  foreach($product[$i] as $key=>$value){
  echo $key.'--'.value.'|';
  }
  echo '<br/>';
  -------------------list----each----------------------------
for($i=0;$i<count($product);$i++){
while(!!list(key,$value)=each($product[$i])){
echo $key.'---'.$value.'|';
}
echo '<br/>';

}
------------------------sort 排序-----------------------------------------
<?php
$fruit = array('banner','orange','apple');

//没有排序前 是按key 的形式
sort($fruit);
print_r($fruit);          //a b o 
>
----------中文----------
$userage=array('吴起'=>12,'李艳辉'=>34,'胡新鹏=>56');
print_r($userage);
echo'<br/>';
sort($userage);
print_r($userage);                 //中文也可以数字也可以 升序
-------------------sort_string---------------------------
$number=array(2,12);
//按照数字的话,要看整体的大小,按照字符串的话,只看第一位大小
sort($number,sort_string);
print_r($number);
------------asort----------------------------
//原始的键是
$fruit = array('banner','orange','apple');
echo '原始的:';
print_r($fruit);
//保持原始的key的关联
asort($fruit);              //下标不变
echo '<br/>';
----------------ksort-------------------------
$fruit = array('banner','orange','apple');
//按照键名排序
print_r($fruit);        a b c
-----------------------------rsort----------------------------------------------
$number=array(2,34,1,5,88,2,3,667,34);
rsort($number);
print_r($number);
-----------------------------------
<?php
//echo'<img src="image/mm1.jpg">'
$pic=array('mm1.jpg','mm2.jpg','mm3.jpg','mm4.jpg','mm5.jpg',)

//数组进行随机打乱
shuffle($pic);  
//对数组进行反向排序  array_*一般是新数组
array_reverse($pic);


for($i=0;$i<3;$i++){
echo '<img src="image/'.$pic[$i].'" style="margin:10px;"/>';
echo "\n";
}
?>
------------------------------------array_unshift-----------------------------------------------
$username=array("吴起");

函数的返回值将会得到数组的个数

array_unshift($username,'胡新鹏');开头insert
array_unshift($username,'李艳辉');结尾insert
print_r($username);

array_shift($username);    删除开头的元素
----------------------array_rand-------------------
$fruit=array('bannner','orange','apple');
//这个函数用来获取一个数组中的键(key)
//这个参数表明随即获取几个
$a=array_rand($fruit,1);    随即两个
echo $a[1]
echo $fruit[$a];
------------------------------------------------------------------------
$userage=array('吴起','李艳辉','胡新鹏');
//获取指针的当前元素
echo current($username);    //并将指针移到下一位
echo  next($username);
echo reset($username);  指向第一个单元
echo prec($username);    back one
echo sizeof($username)  //数组的个数
-----------------------------------------
$username=array(1,24,4,.6,67.8,8)

print_r(array_count_values($username))    //value出现的个数
------------------------------------------------------------------------
$fruit=array('a'=>'apple','b'=>'banner','c'=>'orange');
//通过标量函数将字符串键(key)设置为变量,然后将值赋给了这个变量

extract($fruit);
echo $a;
echo $b;
echo $c;
-----------------------解析目录basename()-----------------------------------------
//将一个路径赋给变量
$path='C:\EFI\Microsoft\Boot\cs-CZ.php';
echo basename($path);            .后面的文件类型
----------------------------返回目录部分-------------------------------------------
echo dirname($path);     .之前的
echo pathinfo($path)      //创建的是array 
$array_path = pathinfo($path);
echo $array_path[dirname];             //打印出目录
echo $array_path[basename];
------------------------------------------------------------------------------------------
$path="demo2.php";              ../
echo realpath($path);              //真实的路径
-----------------磁盘目录和文件计算------------------
filesize  文件的大小
$path='C:\EFI\Microsoft\Boot\cs-CZ.php';
echo  filesize($path)  //字节  1024
echo  round(filesize($path)/1024,2).kb;
---------------------计算磁盘可用空间-------------------
echo round(disk_free_space('C:')/1024,2).kb;
------------------------------总空间大小-----------------------------
echo round(disk_total_space('C:')/1024,2).kb;
--------------------最后改变的时间------------------
echo fileatime($path);
-------------------格式化一个本地日期-----------------------
date_default_tiemzone_set('Asia/shanghai');
//获取最后的访问时间
echo date('Y-m-d:i:s',fileasize($path));
echo date('Y-m-d:i:s',filecsize($path));      //内容的修改时间  
echo date('Y-m-d:i:s',filemsize($path));      //权限的修改时间
------------------------文件处理------------------------------------------
$fp=fopen("file.txt",'w');    //第一参数为那个文件   w  只写  清空插入第一行  没有文件时 试图创建
$outstring='This  is  a wq!'

fwrite//返回的是资源类型
$outstring="This is a wq! he is 19";
fwrite($fp,$outstring,strlen($outstring));             //最后一位数表示限制的长度   用strlen函数
fclose($fp);

--------------------------------------------------------------------------------------------------------
file_put_counts('file2.txt','this is a wq!');           php5才可以使用
--------------------------------------------写入文件---------------------------------------------------------
$fp=fopen('file.txt','w');
$outputstring='this is wq!\r\n thsi is  19';              //\r\n 可以用文本换行
fwrite($fp,$outputstring,strlen($outputstring));
fclose($fp);
--------------------------
file_put_count('file2.txt','this is wq!\r\n thsi is  19');
------------------------------------------------读出文件---------------------------------------------------------------
a  //追加写
$fp=fopen('file.txt',r)          
fgetc($fp);
echo fgetc($fp);//读出一个字符,指针下移到下一个文件
//fgets                //读出文件的一行
fgets($fp);
echo fgets($fp,2);       2行
fgetss($fp);           //过滤html code
fread($fp,2);                //读取定量字节   2
fpassthru();                        //输出文件指针处的剩余所有依据 本身包含了向浏览器输出的功能  返回的是剩余的总长度
------------------------------file-----------------------------------
//把整个文件读入数组中 按每行来分组
  $array_file=file('path')                     //不需要文件聚丙
 echo array_file=[4]              打印文件的第五行
 -------------readfile----------------------------------------------------------------------
readfile('file.txt');                //将整个文件读出来  自带echo

echo   file_getcontents('file.txt')           //保存到缓冲区 通过echo打印出来
-----------------------------------------feof--------------------------------
//检测文件指针是否为结尾
$fp=open('file.txt','r');
while(!feof($fp)){
echo fgetc($fp);
}
fclose($fp);
----------------------------------file_exists--------------------------
//查看文件是否存在  读取文件时 一定要存在
if (file_exists('file.txt')){
echo 'z执行各种各样的文本读写操作';
}else{
echo '此文件不存在,请管理员创建此文件';
}
--------------------------file_size------------------
echo file_size('file_txt');           //文本大小
//删除文件
unlink('123.txt');
-----------------------------rewind倒回到指针的位置--------------------------------------------------
$fp=open('file.txt','r');
echo  fgetc($fp);              //读出并移到下一个
echo  fgetc($fp); 
rewind($fp);
echo  fgetc($fp);
fclose($fp);
----------------------------------------------ftell-----------------------------------------
$fp=open('file.txt','r');
echo  fgetc($fp);              //读出并移到下一个
echo  fgetc($fp);
rewind($fp);
echo  fgetc($fp);
echo ftell($fp);        //查看指针的位置
   
fclose($fp);
------------------------fseek------------------
//在文件指针中定位
$fp=open('file.txt','r');
echo  ftell($fp);
fseek($fp,22);
echo   ftell($fp);\
fclose($fp);
----------------------flock----------------------------
//文件的锁定
a 表示可以追加 b 表示二进制
flock($fp,LOCK_EX);
echo  fgetc($fp);
flock($fp,LOCK_UN);
-------------------opendir----------------------------------------
//打开目录的指定流
$dir=open('distinct_path');               @ 不让错误暴露出来

while($file=readdir($dir)){

echo $file.'<br/>';


}


closedir('$dir');
----------------------scandir-----------------------------------
打印文件
print_r(scandir('distinct_path'));
--------------------rmdir--------------------
rmdir('wode.txt');
------------------rename----------------------------
//目录和文件都可以改
rename('text.txt','wode.txt');
-----------unlink--------------
unlink('wode.txt');
-=========================================md5=============================================================
//对字符串进行加密
echo  md5('134345');
echo '<br/>';
echo  hha('134345');
--------------------------------------function---------------------
function functionname(){
echo '我是一个五参数无返回的函数';
}
  functionname();
--------------------------------------
function  functionmianji($radiu=10) {
$area = $radius*$radius*pi();
echo '半径为:'.$radius.'的面积为'.$area;
}
functionmianji(20);
----------------------------------------
function  functionmianji($radius) {
$area = $radius*$radius*pi();
return    $area;
//echo '半径为:'.$radius.'的面积为'.$area;
}
//大大提高了灵活性
echo '面积为:'functionmianji(20);
---------------------------------------------------
返回多个值得函数调用,可以通过返回一个数组然后可以使用list()函数构造即可
 function functioninfo($name,$age,$job){
    //$userinfo=array($name,$age,$job);      
    $userinfo[]=$username;        //可以用追加的方式比较常用    
    $userinfo[]=$age;
    $userinfo[]=$job;

    return $userinfo;
 }
 
 //$arr=(functioninfo('吴起',19,'学生'));
 //echo $ARR[0];
 
 //调用函数
 list($name,$age,$job)=functioninfo('吴起',19,'学生');
echo  $name.'今年'.'$age'.岁了,他还是'.$job;
------------------------------引用传参---------------------------------
$price = 50;
$tax = 0.5;

//值传参
function functionprice(&$price,$tax){       //&  引用   if not exists;

$pices=$pices+$pices*$tax;
$tax=$tax*$tax;

echo $price;   //75          //外面和里面没关系
echo '<br/>';
echo $tax;

}
functionprice($price,$tax);  
echo $price;     //50      加取址符为75 开辟新的空间
echo '<br/>';
echo $tax;                       //变量区分大小写,函数不区分大小写
----------------------全局变量--------------------------------------
 $a=5;
 function fa(){
 //global $a;         //全局变量
 //$a=2;
$GLODALS['a']=2;


 }
fa();
//echo $a;
echo $GLOBALS['a'];        //超级全局变量
print_r($GLOBALS);
------------------创建自己的函数库(library)--------------------------------------------
function functionpi(){       

return pi();
}   //会存到函数库
---------------------
这句话 把函数库复制过来了
include 'library/tool.library.php';
echo functionpi();  //3.1492615
---------------------------------函数的引用--------------------------------
include ('demo11.php');          //不存在会警告但是继续执行
include_once ('demo1.php' );      //只能包含一次
require_once('demo1.php' );         //recommand
require('demo11.php');       //不存在直接停掉 $ expose
echo '<strong>这是demo11.php </strong>'
-----------------------------------魔法常量-------------------------------
//—file—
//魔法常量 说白了就是一个值而已
$file=_file_
echo $file;    //当前的文件名
//所以包含文件时 推荐使用
//DIR 取得目录 ,去掉文件名
require(dirname(_FILE_).'demo1.phpo');
----------------------------
_LINE_  //return current  line
echo _LINE_;
----------------
function fff(){
return _FUNCTION_;     //return  current function name
}
fff();
-------------------------字符串的格式化---------------------
echo trim('     php     ');  //清理一下两边的空格  ltrim  rtrim(chop)
---------------\n=><br/>-----------------------
//将字符串作为输入函数,用html中的,<br/>标记 代替字符串中的换行符
echo nl2br("this is a teacher!\n this is a student!");      \n 较多
--------all of string transformate html --------------------------------
$str='<strong>吴起<strong>';
echo htmllentitis($str);  //转换所有字符
htmlspecialchars  //我们只需要转换特殊字符
strip_tags        //去掉标签(strong)
---------------------addslashes-------------------------
$str='this is a teacher. hios a  "lee",\n this is wuqi';
$a= addslashes($str);      //过滤
//对于即将插入数据库的字符串,全部会格式化
//这个a 就是写入数据库的,拿出来的话就会有 \这个符号
echo stripcslashes($a);            //解析
---------------------upper------------------------------
 echo  strtoupper('yse@gmail.com'); //将英文转化为大写
 echo  strtolower('yse@gmail.com');  //lower 
 echo  ucfirst('yse@gmail.com');    //first
 echo  ucwords('yse@gmail.com');    // EVER word’s first
-------------------------------str_pad---------------------------
//填充字符串函数  str_pad
$str = 'Lee';
echo str_pad($str,5.'#',STR_PAD_BOTH(LEFT)).'is good!';    //默认的是后面
-----------------------操作字符串---------------------------------------
explode 一个字符串切割另一个字符串
$email=explode('@','yse@gmail.com');
echo $email;
print_r($email);
---------------------------------------------
//分割完了,我经过一轮筛选,还要重新组合
$arr=array('Lee','Wq','Hxp');
$str=implode('&',$arr);        //连接符为&
echo $str;        
--------------------------------------
$str=" i will be back";
//$arr=explode('',$str);

print_r($arr);
----------切开字符串----------------------
$str=" i,will.be#back";
#tok=strok($str,',.#');
//echo $tok;
while($tok){
echo $tok.'<>';
$tok=strtok(',.#');         //分割符 
}
------------------substr----------------------------
$str='yse@gmail.com';
echo    substr($str,0,1)   中间的 是位数,最后一个取几个
------------------------str_split()---------------------
分解字符串  返回一个数组
//$str=' This is a teacher';
//$str='他是吴起';   //中文不太好取 两个字节
print_r(str_split($str));
----------------------strrev()-------------------------
//字符串会逆序   中文不支持
$str=' This is a teacher';
print_r(strrev($str));
------------------字符串的比较--------------------
==比较字符串是否一致    返回 0 负数  整数  区分大小写
if(strcmp('b','b')==0{    //非自然排序
echo "=="
}  
---------------------
echo strccasecmp('B','b');  //不区分大小写
echo strnatcmp('2','10');    //自然排序  10 大
-----------------strspn-----------------
echo strspn('123','123@qq.com',3,5);   //返回几个字母,第三个开始取五位
echo strlen('thjis');  字符串的长度
echo substr_count('thjis',i);  i出现的次数
-------------------查找替换--------------------------
strstr  开始到结尾的位置
echo strstr('yc60.com@gmail.com','@');
//从指定的字符串输出之后的字符串 不区分大小写
echo stistr('yc60.com@gmail.com','g');
-----------------strchr(别名)-------------------------
//查照某字符串 最先出现的位置
echo    strpos('yc60.com@gmail.com','g'); 从第0开始
---------------------------
//查照某字符串 最后出现的位置
echo    strrpos('yc60.com@gmail.com','g'); 从第0开始
---------------replace-------------------------------
echo str_replace('Lee','W','this is Lee');
str_ireplace
 --------------
 echo substr_replace('yc60.com@gmail.com','&&',0,5);
第一个位置开始 取出五个来 并将它替换成参数2
------------------处理中文字符----------------------------------
中文字符可以是 utf8 gb2312  utf8  
mb_strlen()=>strlen
$str='我是吴起';
echo strlen($str);   /8个
echo mb_strlen($str,'GBK');         //有第二个参数
----------------------------------
echo    substr($str,1,2,'GBK');
echo    mb_substr($str,1,2);
mb_strstr()=>strstr
echo    md_strpos('我是ABC','我',0,'GBK');
------------------------正则表达式----------------------
perl风格解析语言搜索和替换
<?
//尝试着写第一个正则表达式
    //if('a'=='a'){
    //echo '相等';
    
    //else{
    //echo  '不等''
    //}
----------------------------
eg:preg_match('model','string')
第一个参数为模式,第二个为字符串
--------
//匹配和相等是两个概念  模式是一个整体
$mode='/php/';
$string='php';

if(preg_match($mode,$string)){

echo '匹配';        //按照模式来匹配 只要通过模式
}else{
echo '不匹配';
}   
-------------------------------------
正则表达式中的元素
+    匹配任何至少包含一个前导字符串 
*    匹配0个或者多个              
?    匹配包含零个或一个前导字符串
.    匹配任意字符串
{x}    匹配任何包含x个前导字符串
{x,y}    匹配任何包含x到y个前导字符串
--------------------------------------
//$mode='/ph+p/';  前导为h      
//$mode='/ph*p/';   //0个多个  前导字符不能更改
//$mode='/ph?p/';        0或1  多个不行 
//$mode='/ph.p/';       //任意一个字符  
//$mode='/ph.*p/';    //前导任意个或多个
//$mode='/ph{3}p/';         //必须是三个
//$mode='/ph{3,5}p/';        //三到五个 
//$mode='/ph{3,}p/';        //至少 三个 
//$mode='/php$/';        匹配字符串的行尾 
//$mode='/^php/';        开始进行匹配
//$mode='/^php*/';        相当于等于
//$mode='/php|asp/';        匹配左边或者右边
//$mode='/(this) (is)  a teacher/';  分组
//$string='this is  a teacher';
$string='phhhhhhhp';        
if(preg_match($mode,$string)){

echo '匹配';        //按照模式来匹配 只要通过模式
}else{
echo '不匹配';
}   
==============================正则表达式元字符================================
//$mode='/[a-z]/';        任何包含a-z 中的任意一个
//$mode='/[abc]/';         一个 
//$mode='/[a-zA-Z0-9_]/';=======[\w]               [\W]=![\w]
//$mode='/[^abc]/';        //不包含abc的字符串 
\d=[0-9]
\D=[^0-9]
\s    空白字符
\S     不包含
\b      是否到达边界   边界可以为空格
\B    没有到达边界
\+    正则中的特殊字符   +  
//$string='php';
$string='phphhhhhhp';        
if(preg_match($mode,$string)){
echo '匹配';        //按照模式来匹配 只要通过模式
}else{
echo '不匹配';
}
------------------------------修饰符----------------------------------------
//$model='/php/i';    //修饰符一般在外面   i表示不区分大小写   
//$string='PHP';        
    //$model='/php$/';        采用多行识别    
    //$string="This is a php\n this is a god ";    单引号不能转义

//$model='/php/x'        //忽略掉规则模式中的字符
//$string='PHP';
    //$model='/php/A    从开头开始匹配
    //$string='PHP';
U     禁止贪婪

if(preg_match($mode,$string)){
echo '匹配';        //按照模式来匹配 只要通过模式
}else{
echo '不匹配';
}
------------------------------函数的引用--------------------------------------------------
搜索字符串 返回有某个模式的数组
preg_grep()
$language=array('php','asp','jsp','python','ruby');  //蟒蛇语言
找出*.p
$mode='/p$/'
    print_r(preg_grep($mode,$language));
----------------
$mode='/^p/'        php python
print_r(preg_grep($mode,$language));
--------------------------------------------
搜索模式
preg_match('/php/[1-6]','php5')        返回true or false
-----------------------------------
电子邮件的案例
//通过 拆分的方式来分组
$mode='(/[a-zA-Z0-9_\.]{2,255})@([\w-]{1,255}).*([a-z]{2,4})/';
$string='yc60.com@gmail.com';
if(preg_martch($mode,$string)){
echo'电子邮件合法';
}else{
echo '否则就不合法';
}
------------------------------
//匹配全局正则
preg_match_all('/php[1-6]/','php5php6hfregert','$out');
print_r($out);
echo $out[0];   php5
--------------------------------------
定界特殊的字符串
preg_quote(PHP is $150');
---------------------------preg_rplace-------------------------------
搜索替换
第一个为模式 第二个放的是替换的字符串 第三个为字符串
echo   preg_replace('/php[1-6]',"python","this is a php5,this is a php4");  //同时替换
-----------------------------贪婪问题和分组问题-------------------------------------
//贪婪和分组获取案例,ubb
//将[b][/b] 换成<strong>php5</strong>
//.*  表示匹配0个或者多个
//用括号分三组那么第一组为\1,第二组为\2,第三组为\3,只有一组就\1
//第一个问题[b][\b]和最后一组匹配了   所以导致直接结尾了
//贪婪匹配问题  跟踪最近的一个 
$mode='(/\[b\])(.*)([\b/])/U';              []为字符中的
$string='this is a [b]php5[\b],this is a [b]php5[\b]'
$replace='<strong>\2</strong>'      //取回php5

echo preg_replace($mode,$rplace,$string)
---------------------------------------------------
//正则表达式分割
//如果没有[]表示同时满足
print_r(preg_split('/[.@]/,'yc60.com@gmail.com'));  
*注释:posix格式  ereg_
====================日期和时间库=================================
1970 1月1日。。。。。POSIX time  格林威治时间
checkdate    返回值为布尔型 验证格里高里时间  
-----------------------
if(checkdate(7,16,2010)){
echo  '这个日期是有效的';
}else{
echo  '这个日期不是有效的';
}
----------------
date()  第一个是日期和时间的格式化[timestamp] 
//Y 4位数的时间 y是两位数的日期
//M表示 英文的月份缩写,m表示阿拉伯数字的月份
//D 表示 英文的日缩写,m表示阿拉伯数字的日 
echo date('Y-m-d H:i:sa');
-----------------------------
gettimeofday  //取得当前时间 得到一个数组
print_r(gettimeofday());
//"sec"    Unix 纪元的秒数        
//"usec" -微妙数        
//minuteswest 格林威治向西的分钟数
//dsttime   夏令时修正的类型
-----------------表单与验证--------------------------------
header()函数  //重新导向URL 跳转页面
ob_start();
//除非打开缓冲,否则之前不能有任何浏览器输出
header('Location:http://localhost');
----------------------
//字符编码法
ob_start();   //打开缓冲区
echo '123';
header(Content-Type:text/html;charset=gbk';   //设置页面编码
echo '嘿嘿,我是中文!'
------------------------------------------
hidden    input //隐藏框
file         //上传
-----------------html--------demo3--------------------
<form method="post action="demo.php">    //地址栏看不到
姓名:<input  type="text name="uername"/><br/>
<input type="submit" value="提交"/>
<form/>
----------------------------------demo4------------------
$_post  超级全局变量
<?php
//接受表单上的值
//一个值 username
//$_POST['username'];
//echo  $_POST['username'];   //提交之后会显示
//空字符串也是数据也可以赋值给$_post
//isset()验证是否z正常提交是非常有效的 
//目前所说的恶非法提交,是你没有经过表单提交,没有生产全局变量,而不是username

 
if(echo isset($_POST[username])){      
echo "正常提交";}
else{
echo "非法提交";
}
------------------------empty ------
//判断是否为空
if(empty($_POST[username])){       ==基本一样 只能说人家没有填 
echo "正常提交";
}
else{
echo "非法提交"
}
---------------------过滤html-------------------------
<form method="post action="demo.php">    //地址栏看不到
姓名:<input  type="text name="uername"/><br/>
<input type="submit" value="提交"/>
<form/>
-----php---------
if(isset($_POST[username])){          
echo "正常提交"
$username=$_POST['username'];

//为了 页面安全性 
$username=htmlspecialchars($username);
echo $username;
else{
echo "非法提交"
}
---------------------数据有效性---------------------------
if(isset($_POST[username])){          
echo "正常提交"
$username=$_POST['username'];
//有效性
$username=trim($username);
//为了 页面安全性 
$username=htmlspecialchars($username);
if(strlen($username)<2)then{
echo ''用户名不能小于两位;
exit;
}
echo $username
else{
echo "非法提交"
}
--------------------------是否为纯数字----------------
is_numeric
if(isset($_POST[username])){          
echo "正常提交"
$username=$_POST['username'];
//有效性
$username=trim($username);
//为了 页面安全性 
$username=htmlspecialchars($username);
if(strlen($username)<2)then{
echo '用户名不能小于两位';
exit;
}
if(!is_numeric($username))then{
echo '用户名必须是纯数字';
exit;
}
echo $username
else{
echo "非法提交"
}
-----------------------------demo4--------------------------------------
<meta http-equiv="Content-Type" content="text/html";charset=GBK">
<form method="post action="demo5.php">    //地址栏看不到
用户名:<input  type="text" name="uername"/><br/>
密  码:<input type="password" value="password"/><br/>
验证码:<input  type="text" name="code" size="5"/>1234<br/>
邮  件: <input type="text" name="email"/> <br/> 
介  绍:<textarea rows="25"cols="6" name="content"></textarea><br/>
<input  type="submit" value="提交"/><br/>
<form/>
--------------------------------------demo5-------------------------
<?php
header('Content-Type:text-html;charset=gbk');
//是否为demo5提交过来的
//只要是按钮点到这里的 其他超级全局变量都应该存在
//如果 send是存在的,那么就是点过来的,跳回5
if(!isset($_POST['send'])||$_POST[send]!='提交'){
header('Location:Demo5.php');
exit;
}
//第二步接收所有数据
$username=trim($_POST['username']);
$password=$_POST['password'];
$code=trim($_POST['code']);
$email=trim($_POST['email']);
$content=htmlspecialchars(trim($_POST['content']));
//echo $username.$password.$code.$content;
//用户名不能小于两位,不能大于10位;
if(strlen($username)<2||strlen($username)>10){
//使用js跳转
echo "<script>alert('用户名不能小于两位或者大于10位');history.back();</script>"
exit;
}
if(strlen($password)<6{
echo "<script>alert('密码不能小于6位');history.back();</script>"
exit;
}
if(strlen($code)!=4||!is_numeric($code)){
echo "<script>alert('验证码不能小于4位并为纯数字');history.back();</script>"
exit;
}
//验证电子邮件是否合法
if(!preg_match('/([a-zA-Z0-9_\.]{2,255})@([\w-]{1,255}).*([a-z]{2,4})/',$email)){
echo "<script>alert('电子邮件不合法');history.back();</script>"
exit;
}
echo '用户名:'.$username.'<br/>';
echo 'email:'.$email.'<br/>';
echo '个人介绍:'.$content;
?>
--------------------demo1-------------cookie sesion-----------------------------------------------
<form method="get" action="demo2.php">
姓名:<input type="text" name="username"><br/>
<input type="submit" value="提交"/>
</form>
<a href="demo2.php?a=5">Lee</a>       //get方式 可以用超链接来传值
------demo2----------------------
//$_POST['username'];
//如果表单采用的是get那么必须$_GET
$_GET['username'];        不安全
------------------------------cookie sesion---------------------------------------
//客户端存储少量信息,包含登录时的信息
//会话结束时 关闭浏览器就没有了
<?php
setcookie('name','value');             //创建 cookie
//创建一个包含 过期时间的cookie 当前时间戳+秒
//表示未来七天 time()+(7*24*60*60)
setcookie('name','value',time()+(7*24*60*60));

//读取本机的cookie,采用一个超级全局变量$_cookie
//有一个特性,setcookie并不是 及时生成,他会慢一拍 第一次刷新不会获取到 而二次才会真正获取到
echo  $_cookie['name'];
//用变量检测函数来判断cookie是否存在
if(isset($_COOKIE['name'])){
echo $_cookie['name'];
else{
echo '不存在此用户';
}

}
------------------删除cookie-------------------------------------------------------------
setcookie('name','value');  
//setcokie('naem','');
//过期的时间
setcookie('name','value',time()-1);
echo $_cookie['name'];
------------------------------------------cookie----------------------------
html 文件前 处理
不同的浏览器输出的结果不一致
一个浏览器能创建的cookie不能超过三十个并且每个不能超过4    kb 每个web站点能设置的cookie总数不能超过20个
主要限制在客户端
-----------------------------------demo6------会话控制--------------------------------
<form method="post action="demo7.php">    //地址栏看不到
姓名:<input  type="text name="username"/><br/>
<input type="submit" value="提交"/>
<form/>
---------------demo7
如果生成的与指定的相同就完成
if(isset($_POST['username'])&&$_POST['USERNAME']=='Lee'){
setcookie('name','value');
header(Locatin:Demo8.php');
}else{
header(Location:demo6.php);
}
============demo8==
if(isset($_COOKIE['name'])){         //有值
echo '欢迎光临'.$_COOLIE['name'];
}else{
echo '非法登录';
}
---------------------session------demo9----------------
session_start()      //开始会话处理     存在于服务器 存放1440秒 如果没有操作 会自动销毁  php.ini 可以修改
//如果关闭了浏览器 自动销毁
//没有慢一拍 即时性
$_SESSION['NAME']='Lee';
 if(isset($_SESSION['NAME'])){
echo $_SESSION['name'];
}else{
echo '不存在此人';
}

-----------unse------------------
unset($_COOKIE['name']
echo isset($_SESSION['NAME']);
--------demo9-------------------
session_start()  
$_SESSION['NAME']='Lee';
$_SESSION['NAME']='Lee2';
--------demo9-------------------
session_start()  
session_destory();  //销毁所有的session  也慢半拍
     echo $_SESSION['NAME'];
    echo $_SESSION['NAME'];
----------------session案例------------------------
//cookie  会员登录 购物车     不占资源
//session 一般用于后台管理 安全性高
-----------------上传文件-------------------------------------
$_file数组
file_uploads=on|off //php脚本是否可以接受文件上传
max_execution_time=integer   最长的等待时间 mb
memory_limit=integer      设置脚本可以分配到的最大内存 
upload_max_filesize=integer  mb  上传时的最大大小 此指令必须小于post_max_size
upload_tmp_dir=string  上传之前必须放在服务器的一个临时目录 知道文件移动到最终目录位置
past_max_size=integer   post方法最大的接受信息 mb
--------------------------------------------------------------
<form enctype="multipart/form-data" action="upload.php[destinct]" method="post">
//hidden 隐藏字段 隐藏域 超过值时not  file之前  不能超过ini.php
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"/>
上传文件:<input type="file" name="userfile"/>
<input type="submit" value="上传"/>
</form>
--------------------------------------$_files-----------------------------------
<form enctype="multipart/form-data" action="demo2.php[destinct]" method="post">
//hidden 隐藏字段 隐藏域 超过值时not  file之前  不能超过ini.php
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"/>
上传文件:<input type="file" name="userfile"/>
<input type="submit" value="上传"/>
</form>
-------------------demo1------------------
<?php
//接受文件
//$_Files
//print_r($FILES);
//存在但是是空值
[userfile][name]   
[userfile][type]
[userfile][type_size]
?>
-------------上传文件指定目录-----------------
is_uploaded_file() 
move_uploaded_file() 
//is_uploaded_file()
//上传后会存放到临时目录下

define('URL',_file_dirname(_file_).'/uploads');

//设置大小问题
if($FILES['usefile']['size']>MAX_SIZE){

echo  "<script>alert('上传文件不得超过2M');history.back</script>"
exit;
}
//判断目录是否存在
if(!is_dir(URL)){
mkdir(URL,0777);   //最大权限


}

define('MAX_SIZE',2000000);
$fileMimes=array(image/jpeg','image/pjpeg','image/png','image/x-png')
//判断是否为数组中的一种
if(is_array($fileMimes)){
in_array($_FILES['userfile']['type'],$fileMIMES)){
echo  '<script>alert('本站只允许jpg.gif.png图片');history.back</script>'
exit;
  }
}

//1 上传错误
if($_FILES['userfile']['error']>0){
switch($_FILES['userfile']['error']){
case 1:echo  "<script>alert('文件超过约定值');history.back</script>"
break;
case 2:echo  "<script>alert('文件超过约定值');history.back</script>"
break;
case 3:echo  "<script>alert('a little');history.back</script>"
break;
case 4:echo  "<script>alert('null');history.back</script>"
break;
}
exit;
}
             //2 只允许jpg
            if($_FILES['userfile']['type']!="img/jpeg" &&img/ejpg"  ){
            echo  "<script>alert('只允许jpg');history.back</script>"

            exit;
            }

        swith($_FILES['userfile']['type']){
        case 'image/jpeg';  //火狐
        break;
        case 'image/pjpeg';  //IE
        break;
        case 'image/gif';  
        break;
        case 'image/png';  //火狐
        break;
        case 'image/x-png';  //IE
        break;
        default :
        echo  "<script>alert('只允许jpg');history.back</script>"
        }


if(is_uploaded_file($_FILES['userfile'])){
//echo '上传的临时文件已经存在,等待移动中,,'
//move_uploaded_file()将上传文件移动到新位置
//第一个  临时文件的地址 
//第二个  存放文件的地址   //相对路径
    //先判断目录是否存在
//屏蔽警告 加@符号
if(!@move_uploaded_file($_FILES['username']['tmp_name'],URL.$FILES['userfile']['name'])){

echo '<script>alert('移动失败');history.back</script>'

exit;}
}else{
echo '<script>alert('找不到上传的文件');history.back</script>'

exit;}

//全部通过就上传成功了
echo '<script>alert('上传成功');location.href="demo3.php?url=".$_FILES['userfile']['name']."</script>'
demo3打印出源URL
-------------------------demo3--------------------
$url=$_GET['url'];
echo '<img src="'.$url.'">'
//echo '<img src="'$_FILES['userfile']['name']'"/>'    not    发送了 2 
----------------------------------上传文件---------------------------------------------------------------
define('URL',_file_dirname(_file_).'/uploads');
---------------------------动态图像的处理----demo1-----------------------------------------------
GD2库
//创建图像
//设置标图
//背景
//文本
//输出图形
//清理资源

//一般生成的是四种 png jpg jpng jpeg
//image 图像函数 只限于html输出

<?php
//1设置文件mime类型,输出类型  默认的 可以不写
header ('Content-Type:image/png');
//创建一个图形区域,图像背景
//2有两种  资源类型 一般加上@防止出错  imagecreate  imagecreatetruecreate
//这个函数创建了一个图像区域。没有进行填充的时候默认为黑色
$im=imagecreatetruecreate(200,200)    返回的是资源聚丙
//3在空白区图像绘制填充
//填充色换掉,首先要有个颜色填充器
//填充色换掉  imagecolorallocate  --为一副图像分配颜色
$blue =imagecolorallocate($im,0,102,255);  
//imgefill将颜色填充到背景
imagefill($im,0,0,$blue);
//4颜色填充 
$whilte=imagecolorallocate($im,255,255,255); 
//imageline --画一条线段
imageline($im,0,0,200,200,$whilte);
imageline($im,200,0,200,200,$whilte);
//imagestring 绘制文本 聚丙 字体size  x y 
imagestring($im,2,0,0,'Mr.Lee,$whilte);

//5输出图形
imagepng($im)
//6清除所有的资源
//imagedestroy($im)   推荐png
------------------demo2---------------------
header ('Content-Type:text/html;charset=gbk');
echo '<img src="demo1.php" alt="图形" title="图形"/>'
----------------------简单的小案例-----------------------------------
//简单的验证码
//随机数
//因为要实现最简单的字母和数字混搭
//十六进制 0-9 a-f 
//十进制转换为十六进制
//创建一个四位

for($i=0;$<4;$i++){
$nmsg.=dechex(mt_rand(0,15));
}
header('Content-Type:iamge/png');
$im=imagecreatetruecolor(75,25);
$blue=imagecolorallocate($im,0,102,255);
$whilte=imagecolorallocate($im,255,255,255);
imagefill($im,0,0,$blue);
imagestring($im,5,20,5,$nmsg,$white);
imagespng($im);
imagesdestory($img);
--------------加载已有的头像-----------------------
define('_DIR_',dirname(_FILE_).'\\');
header('Content-Type:iamge/png');
//imagecreatefrompng    --从png文件中或url新建一图像
//img载入时可以编辑 加水印
$im=iamgecreatefrompng(_DIR_.'222.png');  //全路径
//魔法常量_FILE_

$whilte=imagecolorallocate($im,255,255,255);
imagestring($img,5,0,0,'www.yc6o.com',$whilte);
imagespng($im);   //输出
imagesdestory($img);  //销毁
-------------------加载已有的系统字体---------------------------
define('_DIR_',dirname(_FILE_).'\\');
header('Content-Type:iamge/png');
$im=iamgecreatefrompng(_DIR_.'222.png'); 
$whilte=imagecolorallocate($im,255,255,255);
//采用系统字体
//字体文件
$font='C:\WINDOWS\FONTS\SIMHEI.TTF';
//字体转换
$text=iconv('gbk','utf-8','小李');
//第二个参数是字体的大小  
//三个 旋转角度
//四五参数是坐标
imagegettftext($im,20,0,30,30,$while,$font,$text)
-----------------------------------微缩图的问题-----------------------------
//<img src="22.png" width="20" heigth="40"/>   //会失真
//容量 大小都变小了
header('Content-Type:iamge/png');
define('_DIR_',dirname(_FILE_).'\\');
//getimagesize  取得图像大小
//获取到了原图的长度和高度
list($width,$height)=getimagesize(_DIR_.'222,png');
$_width=$width*0.4;
$_height*=$height*0.4;
//创建一张新图 
$im=imagecreatetruecolor($width,$heigth);

//下面的工作是载入原图,并复制到新图上去
$_im=imagecreatefrompng(_DIR_.'222.png');
//将原图重新采样到新图上 按0.4的比例输出
//imagecopyresampled  --重新采样 并调整大小
imagecopyresampled($im,$_im,0,0,0,$_width,$_height,$width,$height);


//将新图输出
imagepng($im);
//销毁
imagedestory($im);
imagedestory($_im);
---------jpeg
imagepng($im,null,34);  34 表示清晰度也会改变大小
载入jpg
导出的为png?    ok  
------------------------------------------------------------------------------
-


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 HTML 1 小知识点 1 表格 3 Frameset 5 Form/input 8 Map 11 HTML5 12 canvas 12 HTML5废除的标签 13 XML 15 基本语法 15 DTD校验 16 在xml文件中引入dtd文件的两种方式 17 DTD元素和修饰符 17 元素属性列表说明 17 实体定义分两种 18 使用php对xml文件进行操作 19 CSS 23 margin 26 element 28 box 29 position 31 apache 34 PHP 36 数据类型 36 一.双引号与单引号 36 二.运算符 36 三.字符串拼接 36 四.类型运算符 36 五.switch语句 36 六.全局变量 37 七.预定义变量 37 函数 39 数组 40 一.用字符串做下标 40 二.使用小数作为key将,自动截断小数部分 40 四.删除数组元素 40 六.二维数组。 40 类 41 一.重载 41 二.覆盖 41 三.抽象类 41 四.final 42 五.const 42 时间 42 一.输出日期 42 错误处理 43 一.自定义错误处理函数 43 二.触发器 43 三.异常处理 43 四.设置顶级异常处理器 45 防盗链 45 HTTP 46 经过一定时间跳转到指定页面 46 不让浏览器缓存 46 cookie 47 session 47 php.ini中关于session和cookie的配置说明 50 文件操作 51 文件读取 51 文件下载 52 文件上传 53 写入文件 54 拷贝文件 54 文件和文件夹的创建和删除 55 画图 56 画饼状图 56 案例一:投票柱状统计图 57 案例二:验证码 59 GD库 60 PHP和数据库 64 mysql扩展库 64 一.创建一张用户表 64 二.查询数据库中的表 64 三.增删改查类 65 四.数据库操作函数 66 mysqli扩展库 69 一.查询数据库中的表 69 二.释放资源的方式 69 三.增删该查类 69 四.预编译 70 mail 71 ZendFramework 73 快速体验 73 修改数据 74 增加数据 74 查询数据 74 memcached 76 telnet操作 76 php中使用memcached 78 把session数据放入memcache中 79 小知识点 80
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值