PHP全栈学习笔记23

作者: 魔王哪吒 | 来源:发表于2019-05-04 01:05 被阅读1次

    php,基础,流程控制,函数,字符串,数组,web交互,mysql数据库,PHP数据库编程,cookie与session,日期和时间,图形图形处理,文件和目录处理,面向对象,pdo数据库抽象层,smarty模板。

    php是超文本域处理器,是一种服务器端,跨平台,HTML嵌入式的脚本语言。

    客户端为b端,url到服务器s端,html到客户端,服务器database,php和Apache组合。

    url:统一资源定位符,php解析器在服务器上工作,php代码只能在服务器上工作。

    PHP5新特性,构造函数和析构函数,对象的引用,对象的克隆,对象中的私有,公共,以及保护模式,接口,抽象类,_call,_set和_get,静态成员。

    php工作流程,PHP基于服务器端运行的脚本程序语言,实现数据库和网页之间的数据交互。

    操纵系统,网站运行服务器所使用的操作系统。
    服务器,搭建PHP运行环境时所选择的服务器。
    PHP包,实现对PHP文件的解析和编译。
    数据库系统,实现系统中数据的存储。
    还组合浏览器。

    PHP代码,到PHP包对实现PHP文件进行解析和编译,服务器搭建PHP运行环境时所选择的服务器,所需操作系统,数据库系统,通过PHP包解析后的代码发送给用户。

    PHP代码传给PHP包,请求PHP包进行解析并编译,服务器根据PHP代码请求进行读取数据库,解析后的代码发送给浏览器。

    access.conf用于配置服务器的访问权限,httpd.conf用于设置服务器启动的基本环境,srm.conf用于做文件资源上的设定。

    <form name="form2" method="post" action=""></form>
    name: 表单的名称
    method: 表单提交的方法
    action:表单提交的路径
    
    <input type="text" name="textfield">
    type: 应用表单的类型
    name: 文本框的名称
    
    <input type="hidden" name="ID" value="">
    type: 表单的类型
    name: 隐藏域的名称
    value: 隐藏域的值
    
    <textarea name="" cols="" rows="" id=""></textarea>
    name: 文本域的名称
    cols: 表示文本域字符的宽度
    rows: 表示有多少行字符
    
    <input type="checkbox" name="checkbox" value="dashu">
    type: 表单的类型
    name: 复选框的名称
    value: 复选框提交
    checked: 勾选
    disable: 失效
    
    <input type="radio" name="radiobutton" value="radiobutton" />
    
    <select name="select1">
     <option selected="selected"></option>
    </select>
    
    <input type="image" name="imageField" src=""/>
    
    <input type="file" name="file"/>
    
    <label></label>
    

    php引用,常量,运算符,流程控制,自定义函数,正则表达式,文件,目录,会话控制,面向对象,网络协议。

    PHP标记,注解,常量,预定义变量,变量,数据类型,转换,运算符。

    PHP常量,用于存储不改变的数据信息,声明和使用常量

    define()函数声明常量
    constant()函数获取常量的值
    defined()函数判断常量是否已经被定义

    预定义变量
    PHP中提供了很多预定义变量:

    __FILE__ PHP程序文件名
    __LINE__ php程序行数
    PHP_VERSION PHP程序的版本
    PHP_OS PHP解析器的操作系统
    E_ERROR 常量指到最近的错误处
    E_WARNING 常量指到最近的警告处
    

    php变量,是可以改变的量

    声明变量

    $变量名称=变量的值
    

    变量赋值
    直接赋值,传值赋值,引用赋值

    $b = $a;
    
    $b = &$a;
    

    变量作用域
    3中变量作用域:局部变量,全局变量,静态变量。

    // 局部变量
    <?php
    function example(){
     $a="hello"; // 内部
     echo $a;
    }
    example();
    $a = "dashu"; // 外部
    echo $a;
    ?>
    
    // 全局变量
    <?php
    $a = "hello";
    function example(){
     global $a; // 使用global关键词声明并使用在函数外部定义的变量a
     echo $a;
    }
    example();
    ?>
    
    静态变量
    <?php
    function example(){
     static $a = 10; // 定义静态变量
     $a+=1;
     echo $a;
    }
    function xy(){
     $b = 10; // 定义局部变量
     $b+=1;
     echo $b;
    }
    example(); // 静态变量都会+1;
    局部变量都不变
    

    可变变量

    可变变量是一种独特的变量,前面加:

    $$
    $$可变变量名称 = 可变变量的值
    <?php
    $a = "da"; // 定义变量
    $$a = "dada"; // 定义可变变量,变量名称为变量a的值
    echo $a;
    echo $$a;
    echo $da
    ?>
    da
    dada
    dada
    

    php数据类型
    3种,标量数据类型,复合数据类型,特殊数据类型

    标量数据类型:
    boolean布尔型,string字符串型,integer整型,float浮点型。布尔型是PHP常用数据类型,字符串连接的字符序列,由数字,字母和符号组成。

    \r 回车
    \n  换行
    \t 水平制表符
    单引号,双引号
    界定符
    strpos()查找字符串
    strrpos()从后往前找
    strlen()函数用于计算字符串长度
    

    双引号会解析,单引号不会解析。

    integer,float浮点数据类型,可以用于存储整数,也可以保存小数。

    复合数据类型

    两种,array数组和object对象

    特殊数据类型:
    resource资源和null空值
    资源是由专门的函数来建立和使用,空值表示没有为该变量设置任何值,没有赋值,被赋值为null,被unset()函数处理过的变量。

    转换数据类型

    (boolean),(bool),(string),(integer),(int),(float),(double),(real),(array),(object)
    

    检测数据类型:

    is_bool 检测是否布尔类型
    is_string
    is_float
    is_double
    is_integer
    is_null
    is_array
    is_object
    is_numeric
    

    数组 mixed任何数据类型,[]表示可选
    字符串换数组explode函数

    php 运算符

    算术运算符,字符串运算符,赋值运算符,位运算符,递增运算符,递减运算符。

    逻辑运算符

    <?php
    $a = ""; // 空
    if(isset($a) && !empty($a)) {
     echo 'da';
    }else{
     echo 'shu';
    }
    ?>
    isset()函数检测变量是否设置
    empty()函数检测变量是否为空
    

    比较运算符,三元运算符

    php 流程控制语句

    if, switch 条件控制语句
    while, do...while循环控制语句
    for, foreach 循环控制语句
    break, continue跳转语句
    include, require 包含语句
    include_once, require_once语句
    

    包含语句

    <?php include("top.php");?>
    
    <?php include("bottom.php");?>
    
    // include如果外部文件发生错误,系统只会给出一个警告
    

    区别?

    require()出错误信息会终止脚本的处理,include()输出警告,不会终止脚本的处理,require()语句调用文件,程序一执行,就调用,include()只有执行到这句时,才会调用。

    // 闰年
    <?php
    $num = 2012;
    if(($num%4) == 0 && ($num%100) != 0) {
     echo $num;
    }else {
     echo $num;
    }
    ?>
    

    函数

    内部函数和用户自定义函数

    定义和调用函数:

    <?php
    function example($a){
     return $a;
    }
    echo example(1);
    ?>
    

    在函数间传递参数
    3种传递参数:按值传递,按引用传递,默认参数

    按值传递函数内部对形参有变化,对函数外实参没有变化

    引用传递:

    & ,形参加这个 function example(&$a){}
    

    函数内外都发生变化,将实参的内存地址传递给形参

    默认参数必须放在非默认的右边。

    return()返回函数的调用者

    变量函数,叫做可变函数

    <?php
    function a($a, $b){
     return $a+$b;
    }
    function b($a, $b){
     return $a*$b;
    }
    function c($a, $b){
     return $a-$b;
    }
    $result="a";
    echo $result(3,2);
    ?>
    

    变量函数,将函数名赋值给变量。

    函数的引用

    <?php
    function &example($a=0){
     return $a;
    }
    $str = &example("da");
    echo $str;
    ?>
    // da
    

    unset函数,取消引用,只是端口变量名和变量内容之间的绑定,不是销毁变量内容。

    函数库

    empty检查变量是否为空
    gettype获取变量类型
    intval获取变量的整数值
    is_array是否为数据
    is_int, is_numeric是否为数字
    isset是否变量被设置,是否被赋值
    print_r打印
    settype设置变量的类型

    字符串函数库

    addcslashes 实现转移字符串中的字符
    explode字符串指定的字符串或字符切开
    ltrim 删除字符串开头的连续空白
    str_ireplace 将某个指定的字符串都替换为另一个指定的字符串
    str_repeat 将指定的字符串重复输出
    str_replace 取代所有字符串中出现的字符

    explode函数 字符串变数组

    php日期时间函数库

    checkdate 验证日期的有效性
    date 格式化一个本地时间
    microtime 返回当前unix时间戳和微秒数
    mktime 获取一个日期的unix时间戳
    strftime 根据区域设置格式化本地时间
    strtotime 将任何英文文本的日期时间描述解析为unix时间戳

    checkdate()函数
    checkdate()函数用于验证日期的有效性

    php数学函数库
    ceil 返回不小于参数value值的最小整数
    mt_rand 返回随机数中的一个值
    mt_srand 配置随机数的种子
    rand 产生一个随机数
    round 四舍五入
    fmod 返回除法的浮点数余数
    getrandmax 获取随机数最大的可能值

    floor()实现舍去取整
    fmod()返回除法的浮点数余数

    php文件系统函数库

    basename 返回文件路径中基本的文件名
    copy 将某文件由当前目录拷贝到其他目录
    file_exists 判断指定的目录或文件是否存在
    file_put_contents 将字符串写入指定的文件中
    file 读取某文件的内容,并将结果保存到数组中,数组内每个元素的内容对应读取文件的一行
    filetype 返回文件类型
    fopen打开某文件
    fread从文件指针所指文件中读取指定长度的数据

    is_dir 判断目录是否存在
    is_uploaded_file 判断文件是否应用http post方式上传的
    mkdir 新建一个目录
    move_uploaded_file 应用post方法上传文件

    readfile读入一个文件,写入缓冲
    rmdir 删除指定的目录
    unlink用于删除文件

    fopen()函数用于打开某文件
    mkdir()函数用于判断某文件是否存在
    file_get_contents()函数读取文本文件信息

    实现文件,目录,创建和删除

    <?php
    if(!is_dir('txt')){  // 判断txt是不是文件夹目录
     mkdir('txt'); // 创建txt文件夹目录
     $open=fopen('txt/in.txt', 'w+'); // 以读写方式打开文件in.txt
     if(is_writable("txt/in.txt")){
      if(fwrite($open,"dashu")>0){
      fclose($open); // 关闭
    

    mysql函数库

    mysql_close 关闭mysql连接
    mysql_connect 打开一个mysql服务器的连接
    mysql_create_db 创建一个数据库
    mysql_error 文本错误信息
    mysql_fetch_array 从结果集中获取一行作为关联数组,或数字数组

    mysql_fetch_assoc 从结果集中获取一行作为关联数组
    mysql_fetch_field 从结果集中获取列信息并作为对象返回
    mysql_fetch_object 从结果集中获取一行作为对象
    mysql_fetch_row 从结果集中获取一行作为枚举数组
    mysql_num_rows 获取结果集中行的数目
    mysql_query 发送一条sql查询
    mysql_select_db 选择数据库

    <?php
    $link = mysql_connect("localhost", "root", "root"); // 连接数据库
    mysql_selected_db("db_database");
    if(!$link){
     die("数据连接失败".mysql_error());
    }
    echo "连接成功";
    ?>
    
    <?php
    $conn = mysql_connect("localhost","root","root") or die("连接mysql服务器失败");
    // 连接服务器
    $select = mysql_select_db("data_name", $conn);
    // 选择数据库
    if($select){
     echo "数据库连接成功";
    }
    ?>
    
    <?php
    $conn = mysql_connect("localhost", "root", "root") or die("连接数据库服务器失败".mysql_error());
    $select = mysql_query("use database", $conn); // 选择数据库
    mysql_query("set names utf8"); // 设置数据库编码格式
    if($select){
    echo "数据库选择成功";
    }
    ?>
    

    数据库函数库

    count统计数组中元素的个数
    array_push向数组中添加元素

    array_pop获取并返回数组中的最后一个元素
    array_unique删除数组中重复的元素

    array_keys获取数组中重复元素的所有键名
    array_search获取数组中指定元素的键名

    explode将字符串分割成数组
    implode将数组中的元素组合成一个字符串

    array_rand 从数组中随机取出一个或多个单元
    arsort 对数组进行逆向排序
    asort 对数组进行排序
    in_array 在数组中搜索某个值

    count()对数组中的元素个数进行统计

    array_push()函数可以向数组中添加元素

    strlen()函数计算字符串的长度
    substr()函数对字符串进行截取
    file_get_contents()函数读取文本文件中的数据

    字符串

    字符串,转义,还原字符串,截取字符串,分割,合成,替换,检索,去掉字符串首尾空格,特殊字等。

    字符串由零个或多个字符构成的一个集合,数字类型,字母类型,特殊字符,不可见字符。

    转义,还原字符串

    addslashes()函数和stripslashes()函数转义和还原字符串

    addslashes()函数用于对sql语句中的部分字符进行转义

    addslashes()函数进行字符串转义
    stripslashes()函数对转义后进行还原

    截取字符串

    substr()函数从0开始,进行截取字符串要注意编码格式,切记页面编码不能设置为utf-8,如果页面是utf-8编码格式,那么就使用iconv_substr()函数进行截取。

    explode()函数和implode()函数分割和合成

    替换字符串

    str_ireplace()函数和substr_replace()函数

    str_ireplace()函数使用新的字符串替换原始字符串中被指定要换的字符串。

    substr_replace()函数
    substr_replace()函数对指定字符串中的部分字符串进行替换。

    检索字符串

    strstr()函数和substr_count()函数

    strstr()函数获取一个指定字符串在另一个字符串中首次出现的位置到后者末尾的子字符串。

    strstr()函数获取上传图片的后缀

    <form name="form" method="post" action="index.php" enctype="multipart/form-data">
     <input name="u_file" type="file" size="24"/>
     <input type="image" name="imageField" src="images/sc.bmp" onClick="form.submit();">
    </form>
    <?php
    header("Content-type:text/html;charset=utf-8");
    if($_FILES[u_file][name] == true){
    $file_path="./upload\\";
    $picture_name=$_FILES[u_file][name];
    $picture_name=strstr($picture_name,".");
    if($picture_name!=".jpg"&&$picture_name!=".JPG"){
    echo "<script>alert('上传');window.location.href='index.php';</script>";
    }else if($_FILES[u_file][tmp_name]){
    }else{
    }
    ?>
    

    substr_count()函数
    获取子串在字符串中出现的次数

    ltrim()函数和rtrim()函数

    trim()函数用于去除字符串开始位置和结束位置的空白字符,并返回去掉空白字符后的字符串。

    字符串与HTML转换

    htmlentities()函数将所有字符转换为html字符串。

    结言

    好了,欢迎在留言区留言,与大家分享你的经验和心得。

    感谢你学习今天的内容,如果你觉得这篇文章对你有帮助的话,也欢迎把它分享给更多的朋友,感谢。

    感谢!承蒙关照!您真诚的赞赏是我前进的最大动力!

    image image

    相关文章

      网友评论

        本文标题:PHP全栈学习笔记23

        本文链接:https://www.haomeiwen.com/subject/kubanqtx.html