php

作者: 此无休言 | 来源:发表于2020-02-05 09:56 被阅读0次

    require 生成一个致命错误(E_COMPILE_ERROR),在错误发生后脚本会停止执行。
    include 生成一个警告(E_WARNING),在错误发生后脚本会继续执行。

    Session

    session_start(); 开始记录
    $_SESSION['views'] 根据名字获取session
    unset(¥SESSION['views']) 或 session_destroy() 销毁session

    Exception

    抛出异常 try 中throw
    抓包异常 catch
    set_exception_handler() 设置所有未定义的错误抛出

    过滤器

    "filter" 制定方法
    "options" 过滤条件

    • 过滤多个输入
      filter_input_array() 函数来过滤三个 GET 变量。
    • Filter Callback
      调用自己的函数,array("options"=>"xxx")

    接口

    声明一个接口以及内部的方法,但不需要具体内容。
    interface iTemplate
    {
    }
    实现接口
    class Template implements iTemplate

    Mysql

    创建连接 new mysqli($servername, $username, $password);
    检测连接 $conn->connect_error
    关闭连接 $conn->close(); mysqli_close($conn);
    SQl语句 $conn->query()

    PDO

    开启扩展 extension=php_pdo.dll
    初始化新对象 $dbh = new PDO($dsn, $user, $pass);
    错误对象 PDOException

    • 预处理
      mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);

    SQL语句

    php中sql语句拼接,$sql="SELECT * FROM Websites WHERE id = '".$q."'";
    '".$q."'

    AJAX

    能够默写出
    XMLHttpRequest 对象用于和服务器交换数据, open() 和 send() 方法

    open

    xmlhttp.open("GET/POST",服务器上的文件,async:true(异步)或 false(同步));
    如果需要使用,必须true异步,必须确定onreadystatechange 事件中的就绪状态时执行的函数;如果小型请求中false同步,不需要onreadystatechange 函数 ,获取的代码放到 send() 语句后面即可:
    常用GET,以下使用POST:

    • 无法使用缓存文件(更新服务器上的文件或数据库)
    • 向服务器发送大量数据(POST 没有数据量限制)
    • 发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
    1. 在open()中传入的php文件, 如果不加参数常使用的缓存文件,可以将文件后参数添加改成
      demo_get.php?t=" + Math.random()
    2. GET 方法发送信息,向 URL 添加信息:

    send

    xmlhttp.send(); 仅为post请求

    1. 像 HTML 表单 POST 数据,使用 setRequestHeader() 来添加 HTTP 头。在 send() 方法中规定发送的数据:
      xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      xmlhttp.send("fname=Henry&lname=Ford");
      其中 setRequestHeader(header,value)

    response

    .responseText; 字符串形式
    .responseXML 解析为xml

    onreadystatechange

    • readyState 属性存有 XMLHttpRequest 的状态信息,判断改变时触发onreadystatechange 函数,数字代表:
      0: 请求未初始化
      1: 服务器连接已建立
      2: 请求已接收
      3: 请求处理中
      4: 请求已完成,且响应已就绪
    • status数字代表:
      1xx:信息响应类,表示接收到请求并且继续处理
      2xx:处理成功响应类,表示动作被成功接收、理解和接受 200: "OK"
      3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理
      4xx:客户端错误,客户请求包含语法错误或者是不能正确执行 404: 未找到页面
      5xx:服务端错误,服务器不能正确执行一个正确的请求

    所以 readyState 等于 4 且状态为 200 时,表示响应已就绪。
    首先判断输入框是否有数据,没有即为空,有即执行:

    //创建XMLHttpRequest对象
    if (window.XMLHttpRequest)
        {
            // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行的代码
            xmlhttp=new XMLHttpRequest();
        }
    else
        {    
            //IE6, IE5 浏览器执行的代码
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    //创建在服务器响应就绪时执行的函数
    xmlhttp.onreadystatechange=function()
        {
            //state:  satus:
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
            }
        }
    //向服务器上的文件发送请求,添加到 URL 末端的参数(q)(包含输入框的内容)
        xmlhttp.open("GET","gethint.php?q="+str,true);
        xmlhttp.send();
    

    浏览器:创建xmlhttprequest对象,发送httprequest 给
    Internet:处理httprequest并返回数据 给
    浏览器:JS处理返回的数据 ,更新内容
    简单来说,创建XMLHttpRequest,open以后send给onreadystatechange中

    回调函数

    以参数形式传递给另一个函数的函数。将存在的多个AJAX函数引向同一个function

    var xmlhttp;
    function loadXMLDoc(url,cfunc)
    {
      if (window.XMLHttpRequest)
      {// IE7+, Firefox, Chrome, Opera, Safari 代码
          xmlhttp=new XMLHttpRequest();
      }
      else
      {// IE6, IE5 代码
          xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange=cfunc;
      xmlhttp.open("GET",url,true);
      xmlhttp.send();
    }
    function myFunction()
    {
        loadXMLDoc("/try/ajax/ajax_info.txt",function()
        {
            if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
                document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
            }
        });
    }
    

    跨域 Access-Control-Allow-Origin

    在A域名下的server.php中添加头部,

    1. 指定某域名
      header('Access-Control-Allow-Origin:B域名');
    2. 允许多个域名访问
    $origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';    
    $allow_origin = array(  
        B域名
        C域名
    );    
    if(in_array($origin, $allow_origin)){  
        header('Access-Control-Allow-Origin:'.$origin);       
    } 
    

    3、允许所有域名访问
    header('Access-Control-Allow-Origin:*');

    相关文章

      网友评论

          本文标题:php

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