php

xiaoxiao2021-02-28  140

//PHP配置 //修改php.ini配置文件,开启mysqli扩展 extensing=php_mysqli.dll //去掉php.ini前边的分号 extension_dir="D:\phpStudy\php\php-5.5.38\ext"//设置PHP的ext的路径 绝对路径 扩展文件地址 //php.ino中与session相关的配置 session.auot_start=0 //不自自动开启 session.auto_start=1 //自动开启 //设置session的回收时间 session.gc_maxlifetime=1440 //session的保存路径 session.save_path = '/tmp' //开启gd2的扩展 extension=php_gd2.dll //创建图片文档类型 //header('Content-Type:image/jpeg'); //创建一张空白图片 //imagecreatetruecolor($width,$height); //画一个验证码 $img=imagecreatetruecolor(75,25);  //设置颜色  imagecolorallocate($img,$red,$green,$blue); //画矩形 设置背景色 //$x,$y 左上角标  $x2m,$y2右下角坐标   imagefilledrectangle($img,$x,$y,$x2m,$y2,$coloer;);  //画字符串 //$font 1-5 最小1最大5  $x坐标值 $y坐标值  $string 要画的字  imagestring($img,$font,$x,$y,$string,$color);  //画字线段 //$font 1-5 最小1最大5  $x坐标值 $y坐标值  $string 要画的字  imagestring($img,$x1,$y1,$x2,$y2,$color);  //画点  imagesetpixel($img,$x,$y,$color); //将图片发送到客户端浏览器  imagejpeg($img);//注意发送图的类型必须与文档类型一致 imagegif($img);//注意发送图的类型必须与文档类型一致 imagepng($img);//注意发送图的类型必须与文档类型一致 //销毁内存中的图片对像 imagedestroy($img) //目录函数 //创建文件夹 注意:不能创建多级目录 //mkdir('文件夹名');//在当前目录  mkdir('images');//在当前目录  mkdir('images/home');//在指定路径下新建一个文件夹 mkdir('d:/home'); //绝对路径 //删除当前目录下的指定文件夹 //rmdir('images')  注意:只能删除空文件夹 rmdir('images') //移除文件夹 删除文件夹 //获得当前目录 $str=getcwd();//返回字符串 当前目录 //打开目录 $handler=opendir('路径/文件夹'); $str=readdir($handler); //遍历目录(读取文件夹里的内容)  while($str=readdir($handler)){ //遍历完返回空     echo "{$str}<br/>"; } //关闭目录 closedir($handler); //遍历目录 $fileList=scandir('路径/文件夹'); //遍历目录 返回:一维索引数组 $fileList=scandir('d:/phpStudy');//同上面while一样的功能 //显示所有名称 foreach($fileList as $v){  echo $v; } //文件函数 //1.创建一个空白文件 touch('路径/文件名'); touch('hello.txt');//当前目录下创建空白文件 touch('php/hello.txt');//相对路径 touch('d:php/hello.txt');//绝对路径 //2.给文件重命名 rename('原名','新名'); //rename($oldname,$newname); rename('hello.txt','hello.php');//hello.txt改成hello.php rename('d:/hello.txt','d:/hello.php');//只能改文件名,不能改路径 //3.复制文件copy('原文件','目地文件'); //copy($sourec,$dest); copy('d:/test.php','e:/test/php'); //4.删除文件 unlink('d:/text.php')//unlink('路径/文件名') //5.获得文件上次的访问时间 fileatime($filename) 返回:时间戳 $a=fileatime('d:/text.php');//返回:时间戳 //$date=date('日期格式',$a); $date=date('Y-m-d H:i:s',$a); //时间戳转成时间 //6.获得文件最后一次的修改时间 $a=filectime($filename);//返回时间戳 //$date=date('日期格式',$a); $date=date('Y-m-d H:i:s',$a); //时间戳转成时间 //7.获得文件大小 filesize('路径/文件名'); filesize('d:/text.php'); //8.获得文件类型 $ftype=filetype('d:/text.php');//返回 file,dir //9.判断某路径对应的是否为文件 $result=is_file('d:/text.php');//返回 true,false //10.判断某路径对应的是否为文件夹 $result=is_dir('d:/text.php');//返回 true,false //11.将相对路径,转为绝对路径 $result=realpath('d:/text.php'); //12.返回整个路径的文件名 $result=basename('d:/text.php'); //13.返回整个路径对应的目录部分 $result=dirname('d:/text.php'); //14.判断文件是否存在 $result=file_exists('d:/text.php'); //文本文件的读写 //1.写入文本文件 file_push_contents('路径','内容'); //2.获得文本文件中的内容 file_get_contents('路径'); //3.将字符串中所有的\n转换为<br/> $result=n12br('字符串内容'); //正则表达式 //$str='1361301428'; //pattern="/正则表达式/"; $result=preg_match($pattern,$str); //正则替换字符串里的数字 //$result=preg_replace(正则表达式,'替换成当前字符',需要替换的字符串); $str='社会主义好9你好456大家好78956'; $pattern="/\d+/"; $result=preg_replace($pattern,'hello',$str); //通配符 \n  匹配回车符(Windows) \r  匹配换行符(Linux) \t  匹配水平制表符(tab键) \v  匹配垂直制表符(连继换4行) \f  匹配翻页符 \w  匹配任意字符以及下划线(汉字特殊符号除外) \W  匹配任意一个非字符(如:特殊符号汉字) \d  匹配任意0-9数字 \D  匹配任意非数字,(如:除了0-9以外的任意其它字符) \s  匹配一个空格 \S  匹配一个非空格 .   占位符,代表当前位有一个任意字符 ^   严格开头 $   严格结尾 //限定符 ?   0次或1次 +   1次或多次 *   0次或多次 {n}  重复n次 {n,} 最少n次,最多无数次 {n,m} 最少n次,最多出现m次 \d{10}  代理当前位置必须要有10个连继的数字 //其它符号 ()  提高优先级 []  综括号内内容多选一//如:[abc] [a-z0-9] |   或者 //url重写 //Rewrite(Apache的功能) 技术 url重写 //修改httpd:conf配置文件 去掉前面的# 开启url重写功能 //#LoadModule rewrite_module modules/mod_rewrite.so //找到如下选项 进行修改 <Directory />     Options +Indexes +FollowSymLinks +ExecCGI     AllowOverride All  //如果是none改为All     Order allow,deny       Allow from all     Require all granted </Directory> //找到如下选项 修改开发目的的选项 进行修改 <Directory "D:\phpStudy\WWW">     AllowOverride All //如果是none改为All     Options None     Require all granted </Directory> //在项目的根目录下新建一个文件.htaccess(url重写规则文件); //1)该文件的文件名固定 //2)文件的存放位置固定(必须存放在项目的根目录) //3)在.htaccess中,编写规则 //---图片水印 //打开指定的图片 //$img=imagecreatefromjpeg('图片路径'); $img=imagecreatefromjpeg('img/a.jpg'); //画字符串 $color=imagecolorallocate($img,255,255,255); imagestring($img,5,200,100,'www.php.me',$color); //画字符串02 //imagettftext($img,大小,角度,$x,$y,$color,字体文件,要显示的字符串) //imagettftext($img,$size,$angle,$x,$y,$color,$fontfile,$text) imagettftext($img,30,-45,50,100,$color,'font/zw.otf','你好'); //存盘 imagejpeg($img,'保存路径'); //图片缩放 //打开原图 $srcImg=imagecreatefromjpeg('图片地址');//原图 $newImg=imagecreatetruecolor(宽,高);//缩放后的图 $imgsize=getimagesize('img/a.jpg');//获得图片宽高返回数组 print_r($imgsize); //imagecopyresized(新图,原图,新图_x,新图_y,原图_x,原图_y,新图_宽,新图_高,原图_宽,原图_高) //缩放 imagecopyresized($dst_img,$str_img,$dst_x,$dst_y,$src_x,$src_y,$dst_w,$dst_h,$src_w,$src_h) //缩放 imagejpeg($newImg,'img/hello.jpg');//存盘 //出现编码的地方 1. 文件存储格式的编码 2. <meta http-equiv='content-type' content='text/html'; charset=utf-8> 3. header("content-type:text/html;charset=utf-8"); 4. MySQL本身编码 5. 建库时指定库的编码 //连接数据库流程 mysqli函数库 <?php header('Content-Type:text/html;charset=utf-8');     //1:连接数据库     $conn=mysqli_connect('127.0.0.1','root','root','ifeng') or die('数据库连接失败');     //2:向mysql发送sql语句     $sql='delete from t_news where nid=1';     $result=mysqli_query($conn,$sql);     //判断是否执行成功     if($result===true){         echo '删除成功';     }else{         echo '删除失败';     }; //4:关闭数据库 //    $searr=mysqli_free_result($rs);//如果mysql语句有结果集 释放解果集 返回索引+关联数组 //    $searr=mysqli_fetch_assoc($rs) //返回的是关联数组 //    $searr=mysqli_fetch_row($rs) //返回的是索引数组     mysqli_close($conn); phpinfo();//查看PHP信息 //包含文件 include '路径/xxx.php'; //包含的文件有错误,产生一个警告,程序继续执行; require '路径/xxx.php'; //包含的文件有错误,产生一个至命错误,程序终止执行; include_once '路径/xxx.php'; //如果包含多次同一文件,页面只包含一次,只有一次生效; require_once '路径/xxx.php'; //如果包含多次同一文件,页面只包含一次,只有一次生效; //session //开启会话 session_start(); session_start(); $id=session_id(); //存取数据 $b=$_SESSION['userName']; echo $b; //向cookiek中存储临时性数据 //浏览器关闭cookiek失效 setcookie('address','北京',) //$变量=$_COOKIE[名];   获得cookie的值的方法 //setcookie('cookie名','值',到期时间);// //向cookie中存储数据 //时间到期cookiek失效 setcookie('address','北京',time()+3600*48);//两天后到期 //cookie存数组 $cityList=array('北京','上海','天津','深圳'); setcookie('addr',$cityList); $arrcook=$_COOKIE['addr']; //函数 //数组转成字符串,序列化数组 $str=serialize($cityList); //反序列化 //将字符串还原为数组 $arr=unserialize($str); //分割字符串 $str='中国-美国-英国-德国'; $arr=explode('-',$str);//返回数组 //返回一个英文字母加数据的字符串,保证调用一万次产生的值不同 uniqid()//产生不同字符串 //面向对像 //类的封装 //属性 //可见性   $属性名称=初值     public  //公共类特点:类内部可见,对像可见 可继承     protected  //受保护类 特点:类内部可见,对像不可见 可被继承     private  //私有类 特点:类内部可见,对像不可见 不能被继承 //方法  //可见性   function 方法名称(参数1,...){     方法体;     return 返回值;  };  //构造函数  1. function __construct(参数1,...){     ....  }  2. function 类名5(参数1,...){     ....  }  //析构函数  function __destruct(){     ....  }  //如:声明一个类  class people{     public $age;     public $height='1.75';     public $weight='55';      //构造函数  实例化类后自动调用      function __construct(参数1,...){      }     function eat($what=''){         if($what='大鱼大肉'){             $this->$weight='90';         }else if($what='素菜'){             $this->$weight='50';         }else{             $this->$weight='45';         }     }  }  //类的自动加载  例如: function __autoload($className){     //echo 'nihao';     $classFileName=$className.".class.php";     require 'class/'.$classFileName; }; $ob=new News(); var_dump($ob); //设置自动加载目录: set_include_path('路径');//可以设置多个 //先去class目录下找,没找到再去class/public路径下找 例如: set_include_path('class;class/public'); //linux系统的分割符是冒号":" 不是分号";"  如下 set_include_path('class:class/public'); PATH_SEPARATOR  //系统常量 不分系统 如下 set_include_path('class PATH_SEPARATOR class/public');   //继承语法格式  //子类继承父类 只有 protected public可以被继承  private不可以被继承 // 例如: f 为父类  son 为子类 class f{     public $a=1;     protected $b=2;     private $c=3;     private $d=4;     public function fun1(){         echo 'fun1';     }     public function fun2(){         echo $this->a;     }     protected function fun3(){         echo $this->b;     }     function fun4(){         echo $this->d;     } } class son extends f{ } $exobj=new son(); $exobj->fun1; //抽像类 一个类中有没有方法体的方法,这个方法就叫抽像方法abstract class 类名{}格式如下: abstract class 类名{     属性:     方法:     抽像方法: } //抽像方法 protected 可加可不加 abstract protected function 方法名称(参数1,...){ } //接口文件写法 例如: interface News{     /* desc:添加文章      * params: array $arr, example:array('title'=>'cotent')      * return:主键id值      * author:xufangfang-99@163.com      */     function adNews($arr);     /* 说明:删除文章      * 参数: int $id, example:'15'      * 返回值:主键id值      * 联系方法:xufangfang-99@163.com      */     function deleteNewsById($id); } //继承接口: class 类名 implements 接口文件名{ } class News extends Model implements 接口文件名{ } //魔术方法 名字固定,功能固定 function __construct()  //构造函数 function __destruct()   //析构函数 //__call(方法名,参数(数组)) __call($funName,$args) //调用一个未定义的方法时__自动被启动 __get($proName)//访问一个未定义的属性时,自动调用 //__set(属性名,属性值) __set($proName,$proValue)//给一个不存在属性赋值时,自动调用。 __clone()//当对像被克隆时,自动调用 函数:克隆变量 clone(变量) $a=123; $b=clone($a); private function __clone(){//防止克隆 } __sleep() __wakeup() //静态类 class 类名{     可见性为 static 属性名=默认值;     可见性为 static functin 方法名(参数1,..){         ....//方法体         $a=123;        //静态类不可以这样访问 $this->静态属性名;        //静态方法可通过下面方法调用        类名::静态属性名;//访问静态属性前面要加$        self::静态属性名;        类名::静态方法名;        self::静态方法名;         return 值;     } } //类常量 const 名称=值; 如 圆类 const pi=3.14; //单例模式  //数据库操作类,需要。  class Test{     private function __construct(){}//防止外部调用NEW实例化,构造函数私有化     protected static $ob='';//初始化单例为空     static function getInstance(){//只能调用一次方法         if(self::$ob==''){             $ob=new Test();             self::$ob=$ob;             return $ob;         }else{             return self::$ob;         }     }     private function __clone(){} } Text::getInstance(); //PDO 开启 extension=php_pdo.dll extension=php_pdo_mysql.dll //使用PDO //$ob= new PDO("mysql:host=ip地址;dbname=数据库名称", '用户名', '密码');   $ob=new PDO("mysql:host=localhost;dbname=news", 'root', 'root');   var_dump($ob); //方法 query(sql语句) //select  返回 object  exec(sql语句) //insert update delet 返回影响的条数 fetch()//获取一条记录 //$arr=$psob->setFetchMode(PDO::FETCH_ASSOC); fetchAll()//获取所有记录 实例如下 //$arr=$psob->fetch();//fetch 每次取一条,然后指针下移 //$arr=$psob->fetchAll();//fetch 每次取一条,然后指针下移 //指定返回数的类型 setFetchMode(); //PDO常量 PDO::FETCH_ASSOC PDO::FETCH_NUM PDO::FETCH_BOTH PDO::FETCH_OBJECT //sql语句预处理 $pdoOB->prepare("insert manager(username,password) value('fanny0001','123456')") $psOb->execute(array('值1','值2','值',...)); //占位符 //? //: //sql语句中哪些部分可以使用预处理。 select 字段列表 from 表名 where 字段 运算符 ? and type=? limit start,length 只能有一个使用占位符 having 字段名 运算符? insert into 表名 set 字段=?,字段=?,...where 字段 运算符? update 表名 set num=num+1 where 字段 运算符 ? delete from 表名 where 字段 运算符 ? //smarty模板 //自定义函数实现字符串截取,支持中文 $str //被截取的字符串 $charNum //截取长度 $charset //中文字符的编码 function mysubstr($str,$charNum,$charset='utf-8'){     if(mb_strlen($str,$charset)<=$charNum){         return $str;     }else{         return mb_substr($str,0,$charNum,$charset).'...';     } } //注册函数 把主程序中的函数,注册到模板上使用 //1.在主程中声明函数 //2.如何注册: $smarty->registerPlugin('function','模板上函数名称','被注册的函数名'); //缓存 //1.修改配置文件 $smarty->caching=true;//开启缓存 $smarty->cache_lifetime=300;//指定缓存时间 单位:300秒 //2.生成缓存 $smarty->isCached('path','cacheid');//判断缓存是否存在及合法 $smarty->display('path','cacheid');//生成缓存,拿缓存,显示 <{nocache}> <{$t}> <{/nocache}>//局部不缓存 //静态化 //1.获取详细页运行的结果 $content=$smarty->fetch('path');//返回文本字符串 //TP thinkPHP框架 //指定应用目录 define('APP_PATH','./Application/'); //加载入口文件 require './ThinkPHP/ThinkPHP.php'; //url地规则 // index.php?m=模块名&c=控制器&a=方法名&...      //普通模式 // index.php/模块名/控制器名/方法名/id/值...     //PathInfo模式 // index.php?s=/模块名/控制器名/方法名/id/值...  //兼容模式 // .haccess文件中正则表达式决定                 rewrite模式 // 如: /news_detail_id_1.html    浏览器解析 index.php/home/news/detail/id/1 // $this->assign('s',$str);  变量传给模板 // $this->error("提示信息","目标地址");失败提示 // $this->seccess("提示信息","目标地址");成功提示 // $this->display();显示模板 // U("模块/控制器/方法",array('名'=>值,...)); // redirect();  //实现跳转,没有提示 // __PUBLIC__  模板标签用来生成Public目录对应的url地址 // 后台访问控制 // 在LoginController/check中创建会话变量 // 在NewsController/add,oper中判断 //  // V模板的编写 // 普通变量标签  {$名称} // 数据变量标答  {$数组名.下标} {$数组名['下标']} // 数组遍历标签   <foreach name='数组名' item='v' key='k'>  {$v.下标} </foreach> // 条件标签  <if condition="$a ">   </if> 标签符不要定界签{} // <if condition="$a ">  <else/> </if> // <if condition="$a ">  <elseif condition="条件"> <else/> </if> // 说明条件中不能使用< > 大于号 >,小于号 <  因为和定界符冲突 // eq 等于 // gt 大于 // lt 小于 // egt 大于等于  // elt 小于等于 // neq 不等于 // heq 恒等于 // nheq 不恒等于 // 变量调节器 // {$被调节变量|函数=参数1,函数=参数2,###...}// // {$Think.const.常量名称}常量的使用 // {$Think.get.名称} // {$Think.cookie.下标} // {$Think.request.下标}//即能接收get传值也能接收post传值 // {$Think.session.下标} // 公共模板加载 // <include file='path'> // path写法: // ./Application/Home/View/Public/header.html // 控制器名:方法名 // Public:header // 模板上路径标签: // 例如路径: http://www.php.me/homework/TP/index.php/Home/News/lister // __PUBLIC__ 静态资源的路径 js css image // ure地址,a连接 // __ROOT__     //当前的根路径 如: http://www.php.me/homework/TP   // __APP__     //当前Think入口文件index.php 如: http://www.php.me/homework/TP/index.php // __MODULE__  //当前模块Home 如: http://www.php.me/homework/TP/index.php/Home   // __URL__     //当前控制器News 如: http://www.php.me/homework/TP /index.php/Home/News  // __ACTION__  //当前的方法lister 如: http://www.php.me/homework/TP/index.php/Home/News/lister   // __SELF__    //全部包括传值 如: http://www.php.me/homework/TP/index.php/Home/News/lister  //  // Model.class.php  ThinkPHP模型类 常用以下方法 // add() // save() // delete() // select() // find() // 条件 // $数据模型类对像->where('条件') // $数据模型类对像->join()  多表连查 // $数据模型类对像->alias()  给主表取别名 // $数据模型类对像->order()  排序 // $数据模型类对像->group()  分组 // $数据模型类对像->having()  筛选 // $数据模型类对像->limit()  指定拿多少条 // $数据模型类对像->table()  指定表名 // $数据模型类对像->field()  指定字段列表 // 子类封装 // Model类的实例化 // 1.放在Common/Model/XxxModel.class.php // 2.必须继承Model // 3.使用命名空间 // 4.方法没有要求 // 5.属性 protected $tableName=''; // 例子:封装一个数据模型类,操作newstype // Model类的实例化     new \Think\Model('news');   //简写 M('news')// 调用Think的Model类     new \Common\Model\XxxModel();//简写 D('type')  找typeModel//调用自定义类  //如果子类不存在,直接实例化Model(); type当表名使用     //PHP加密     //使用 Zend Guard 收费产品。 一年大约几千元,有试用期5天,5天后过期,先加密,再在服务器端解密.  
转载请注明原文地址: https://www.6miu.com/read-37920.html

最新回复(0)