php

Posted 兔子零84

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php相关的知识,希望对你有一定的参考价值。

1、location.href=‘http://www.xxx.com/‘;

2、location.replace(‘http://www.xxx.com/‘);

phpstudy运用在后端

------服务器:提供服务的机器------

通过域名访问  给电脑配服务器

静态页面就是数据不变
数据变化:动态网页  


服务器作了什么:
1.接受用户请求
2.根据用户请求执行相应业务处理
3.将处理返回

ajax:
发送请求
响应结果

http:服务端的通讯协议
https: 更安全

bs   浏览器服务器


cs   客户端服务器


端口 3306 数据库  
80    wed服务





DNS:
1.接收用户输入的域名
2.查询域名所对应的ip地址
3.返回ip

DNS 翻译

hosts文件 相当于DNS

C:WindowsSystem32driversetc

PHP是什么?
超文本预处理

端口:

计算机本身是一个封闭的环境,就像是一个大楼,如果需要有数据通信往来,必须有门,这个门在术语中就叫端口,每一个端口都有一个编号,每台计算机只有 65536 个端口(0-65535<?php
// echo 是 PHP 中的一个特殊的“指令”,
// 不一定需要像函数那样通过 `()` 去使用
// 注意:echo 后面紧跟着一个空格
echo ‘hello php‘;
echo ‘hello‘, ‘world‘;
// => `helloworld`



<?php
// print 与 echo 唯一区别就是只能有一个参数
print ‘hello php‘;
// print ‘hello‘, ‘world‘;
// => Parse error: syntax error ...


<?php
// var_dump 是一个函数,必须跟上 () 调用
// 可以将数据以及数据的类型打印为特定格式
var_dump(‘hello php‘);
// => ‘string(9) "hello php"


数据类型:
- string(字符串) **

- integer(整型)—— 只能存整数

- float(浮点型)—— 可以存带小数位的数字

- boolean(布尔型)

- array(数组) **

- object(对象)

- NULL(空)


判断数据类型:
- is_string():判断当前变量是否是字符串类型

- is_bool():判断当前变量是否是布尔类型

- is_int():判断当前变量是否是整形类型

- is_float():判断当前变量是否是浮点类型

- is_array():判断当前变量是否是数组类型

- is_object():判断当前变量是否是对象类型



pre 格式化   后里面写空格就有空格

$globals   改变全局变量作用域

- $GLOBALS — 引用全局作用域中可用的全部变量

- $_SERVER — 获取服务端相关信息

- $_REQUEST — 获取提交参数

- $_POST — 获取 POST 提交参数

- $_GET — 获取 GET 提交参数

- $_FILES — 获取上传文件

- $_ENV — 操作环境变量

- $_COOKIE — 操作 Cookie

- $_SESSION — 操作 Session



;开启扩展路径ext,ext是PHP程序的插件目录,修改成绝对路径
extension_dir = "G:/phpstudy/php/php-7.1.14/ext"


 // +只能是算术运算符,系统会自动的将+两边的变量转换为数组,
    //如果可以转换,就进行转换,否则返回这个数据类型的默认值  
    //int >0 object > null bool>false float:0.0
    // 在php中字符串连接符使用.

    // 算术运算符: + - * 、 % ++ --
    // 赋值运算符:= += -= *= /=
    // 逻辑运算符:! && ||
    // 比较运算符:> >= < <= == === !=
    // 三元运算符:a>b ? "" : ""


get:一般用来获取数据,参数会在url地址栏拼接
post:一般用来发送数据到服务器

----------accept=".jpg,.png"文件类型-----------------------

<form action="<?php echo $_SERVER["PHP_SELF"] ?>" method="post" enctype="multipart/form-data">
       文件上传: <input type="file" name="myfile" id="" accept=".jpg,.png">
                <input type="submit">
    </form>
----------------------------------------------------------

trim()去除前后的空格
--------------------------上传--------------------------------------
  <!-- 1.在php中,上传文件的请求方式必须是post -->
    <!-- 2.在上传的时候必须在表单设置enctype属性
        application/x-www-form-urlencoded:将参数编码为键值对的格式,这是标准的编码格式(UTF-8 GBK GB2312),它用来处理字符串,它是默认的编码格式
        multipart/form-data:它是专门用来处理特殊数据的,如文件
    -->

---------------------------------------------------------------------
Array
        (
            [myfile] => Array
                (
                    [name] => 跨域攻击.png:源文件的名称
                    [type] => image/png:源文件的类型
                    [tmp_name] => C:WindowsphpE412.tmp:这是文件在服务器的临时路径
                    [error] => 0:错误信息,0代表没有错误
                    [size] => 256436:文件的大小
                )
        )
 */
//(1)strpos(源字符串,搜索字符串):可以获取指定字符串在源字符串中第一次出现的索引值,索引从0开始
//(2)strrchr(源字符串,指定搜索的字符)

-
    <form action="<?php echo $_SERVER[‘PHP_SELF‘] ?>" method="post" enctype="multipart/form-data">
        文件选择:<input type="file" name="myfile"><br>
        <input type="submit">
    </form>

GET方式提交数据的特点:
get方式在url后面拼接参数,只能以文本的形式传递数据
传递的数据量小,4KB左右(不同浏览器会有差异)
安全性低,会将数据显示在地址栏
速度快,通常用于对安全性要求不高的请求

特点
1-post 方式 安全性比较高
2-传递数据量大,请求对数据长度没有要求
3-请求不会被缓存,也不会保留在浏览器历史记录中
用于:密码等安全性要求比较高的场合,提交的数据量比较大:发布文章,上传文件。
POST方式提交数据上限默认为8M(可以在PHP的配置文件post_max_size选项中修改)

<!-- $_SERVER["PHP_SELF"] 表示当前处理页面的名字-->


implode:字符串分割

//使用move_uploaded_file函数来实现文件的移动,否则文件在程序结束后会被自动的删除
//move_uploaded_file(源文件的全路径,目标文件的全路径)

出现乱码解决代码:header(‘content-type:text/html;charset=utf8‘);

<?php
if ($_SERVER[‘REQUEST_METHOD‘] === ‘POST‘) {
  // 表单提交请求
}

超全局变量:无法访问函数中的变量;  $GLOBALS

时间区
php-ini >date.timezone = PRC|Asia/shanghai|Asia/chongqin 
-------------------------------------------------------------------

1.php标记
    <?php   
        1.写在这个结构内的代码才会以php语法解析
        2.写在这个结构外的代码会原样返回
    ?>


2.输出内容的方式
    echo:输出一个或者多个字符串
    print 或者 print():输出一个字符串值
    print_r():可以输出复杂数据类型,如数组,以键值对的形式输出
    var_dump():可以输出复杂数据类型,如数组,以键值对的形式输出,还可以输出数据的长度



3.字符串
    ‘‘:不能解析变量,会将变量当成普通字符串处理  \ ‘
    "":能解析变量 " 	 
 
 $



4.数组:
    创建方式:
        $arr = array()
        $arr = []
        $arr[] = value; //如果数组不存在则可以自动的创建一个数组,并将当前值添加到数组中,如果存在则添加数据到数组
    数组的类型:
        索引数组:不人为设置key $arr = array(1,2,3,4);
        关联数组:人为设置key和value  $arr = array("name"=>"jack")
        混合数组:$arr= array(1,2,3,"name"=>"jack",4)
        二维数组:数据的值本身又是一个数组
            $arr = array(
                array(
                    "name"=>"jack",
                    "age"=>20
                ),
                array()
            );
    数组遍历:for  | foreach
    for($i =0;$i<count(数组);$i++){

    }

    foreach(需要遍历的数组对象 as $key => $value){

    }

    foreach(需要遍历的数组对象 as $value){

    }


5.变量作用域:函数内部默认不能使用函数外部所声明的成员,如果想使用,则:
    1.使用global关键字
    2.使用超全局变量$GLOBALS

6.常量的定义和使用:
    define(名称,值,false)
全大写

7.载入其它文件:文件包含
    include:如果载入失败,不会报错,后续代码会继续执行,它可以重复载入
    include_once:如果载入失败,不会报错,后续代码会继续执行,它不会重复载入,只会真正的载入一次
    require:如果载入失败,会报错,后续代码不会继续执行,它可以重复载入
    require_once:如果载入失败,会报错,后续代码不会继续执行,它不可以重复载入

8.常用API
    文件操作:
        file_get_contents:可以读取文件内容并返回
        file_put_contents(文件路径,写入的内容,FILE_APPEND):可以将指定的字符串内容写入到文件,其中第三个参数FILE_APPEND可以实现文件内容的追加

9.html混编
    1.在<?php 在这个结构内部只能写符合php语法的代码 ?>
    2.在<?php  ?>结构的代码会原样输出
    3.混编实现方式
        1.<?php echo ‘<p></p>‘ ?>
        2.
            <?php  if(){ ?>
                <p></p>
            <php }?>


----------------------------------------------------------
php.ini
上传音乐  upload_max_filesize = 500M  更改

<audio>标签,作用:播放音乐
                                src:添加音频文件路径
                                controls  出现控制播放的控制面板,
                                autoplay  自动播放 


请求行
请求头
空行
请求体

记住:使用session一定要加上session_start()

//一小时过期
setcookie("uName","admin",time()+ 3600)
//永久性COOKIE
setcookie("password","123",PHP_INT_MAX);

//setcookie("username","jack",PHP_INT_MAX,"/day5/down");

-----------增加删除和修改是返回受影响的行数--------------

查询语句的语法:select *|字段列表 from 表列表  where  条件
*代表当前表的所有字段


数据库操作:
select from    表名    where    条件    ----查询
insert    into    表名    values    条件    ----新增
update        表名    set    条件    ----修改
delete from    表名    where    条件    ----删除

-- 查询mytalbe中的所有数据
SELECT * FROM mydase

-- 查询mytalbe中的所有数据
SELECT * FROM mydase
-- 查询ID  not>!  and>&&  or>||
SELECT id,NAME FROM mydase
SELECT * FROM mydase where id =4
SELECT * FROM mydase where age<20
SELECT * from mydase where age>=20 AND gender =1
-- 增加
insert into  mydase values (null,‘lili‘,13,2010-12-1,0,17615848307)
INSERT INTO mydase(age,gender) VALUE (40,1)
-- 修改语句
UPDATE mydase SET age = age +10 WHERE id = 2
update mydase set age = age +20 where id = 5
-- 删除语句
delete from mydase where id = 6
delete from mydase where id in (4,5)



select    count    ---数数总计
select    min    ---最小值
select    max    ---最大值
select    avg    ---平均值

判断用户是否提交
  if($_SERVER["REQUEST_METHOD"]==="POST"){
    login();
  }
步骤分析:
1、判断请求是否是POST  $_SERVER[‘REQUEST_METHOD’]==’POST’
2、校验表单数据是否为空或者不存,如果不存在就将该表单的name存入数组中
3、点击提交判断没有输入值就显示警告


步骤分析:  list.php
1、读取文件获取json字符串
2、将json字符串转换成php数组
3、遍历数组将数据渲染到页面上


步骤分析:
1、将选中的文件存储为永久文件
2、读取music.json中的数据
(1)将数据转换成数据数组  json.decode
(2)获取表单输入的值存放至数据数组中
3、将数据数组转换成字符串  json.encode 写入music.json中
4、添加成功后页面跳转至list.php


链接库:
header(‘content-type:text/html;charset=utf-8‘);

mysqli_set_charset($conn,"utf8");

    // 连接成功,那么就可以创建sql语句,执行相关操作
    // 1.新增数据:在执行新增语句的时候,mysqli_query的返回值:如果成功则返回true,否则返回false
    // 2.修改操作:
    // 3.删除操作


1.创建连接--建立连接
    $conn = mysqli_connect(主机或IP地址,用户名,密码,数据库名称);
    如果连接成功,就返回一个连接对象(资源),如果连接失败,返回false

2.设置编码:主要是解决浏览器出现乱码的问题
    1.服务器端的编码和php的编码不一致:mysqli_set_charset($conn,"utf8") | mysqli_query($conn,"set names utf-8")
    2.php的编码和浏览器端的编码不一致:header("Content-Type:text/html;charset=utf-8")

3.创建sql语句
    1.新增:数值如果是字符串类型,一定要使用引号包含.如果数据没有使用引号包含,有可能会有错
        "insert into temp value(‘张三‘)"
    2.删除和修改一定需要考虑是否有条件

4.执行sql语句
    1.增加删除和修改:如果成功则返回true,否则返回false
    2.查询:
        查询失败:false
        查询成功但是没有数据行:mysqli_num_rows(资源对象--引用)
        查询成功也有数据行:读取数据
    3.使用mysqli_query($conn,$sql)

5.接收返回值
    增加删除和修改:true/false 
    查询有结果集同时有数据
        mysqli_fetch_array(查询结果集):每次读取一行数据,生成数组,里面包含两种形式的数据(索引数组,关联数组)
        mysqli_fetch_assoc:每次读取一行数据,生成数组,里面只包含关联数组
        mysqli_fetch_row:每次读取一行数据,生成数组,里面只包含索引数组
    循环读取:
        while($row = mysqli_fetch_assoc(结果集)){
            $arr[] = $row;
        }
6. 释放资源:及时的关闭连接对象,释放资源:什么时候释放:当与mysql相关的操作执行完毕之后就立刻释放
    mysqli_close($conn);


<?php 
    header("Content-Type:text/html;charset=utf-8");
   $coon = mysqli_connect("localhost","root","root","mydase");
   mysqli_set_charset($coon,"utf8");
   if(!$coon){
       //echo ‘连接失败‘;
       die("连接失败");
   }else{
       echo "连接成功";
   }
?>

获取计算机相隔现在时间
$time1=strtotime();
现在时间
$time2 = time();
 //合并单元格
              //colspan  横向合并 跨列
              //rowspan  纵向合并 跨行


200 OK
请求已成功,请求所希望的响应头或数据体将随此响应返回。出现此状态码是表示正常状态。
403 
请求被拒绝
404  服务器没有这个页面


extension_dir  开启 配置文件
mysqli         开启 配置文件
    

==========================================================
//连接库
$conn=mysqli_connect(DB_HOST,DB_USER,DB_PWD,DB_NAME);

//设置sql语句
 $sql="SELECT p.id,p.title,p.feature,p.created,p.content,p.views,p.likes,c.`name`,u.`nickname`,
    (SELECT COUNT(id) FROM comments WHERE comments.post_id=p.`id`) AS  commentCount
    FROM posts p
    LEFT JOIN  categories c ON  c.`id`=p.`category_id`
    LEFT JOIN  users u ON  u.`id`=p.`user_id`
    WHERE p.`category_id`={$categoryId}
    LIMIT 20";

//执行sql语句
    $result=mysqli_query($conn,$sql);//结果集
  header("Content-Type:text/html;charset=utf-8");

//拿到数据
  $postarr=[];
  while($row=mysqli_fetch_assoc($result)){
    $postarr[]=$row;
  }



 header("Content-Type:application/json;charset=utf-8");
     echo  json_encode($response);从数据库获取内容并转换成JSON格式的内容

 

以上是关于php的主要内容,如果未能解决你的问题,请参考以下文章

PHP代码-psysh调试代码片段工具

超实用的php代码片段

比较有用的php代码片段

php Yoast SEO规范输出的代码片段

php Yoast SEO规范输出的代码片段

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面