zoukankan      html  css  js  c++  java
  • 17、php

    php

    1.WEB服务的三大组件

    apache 、php 、 mysql

    Apache服务器。(端口号定义,http协议,开启和关闭)

      一种开放源码的HTTP服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
      简单说:Apache是提供web服务的程序,用来执行网页程序和显示网页的服务器。Apache本身不用装php和mysql也能提供服务。

    Apache的默认端口是80 : https://localhost:80/

    Apache的核心服务是httpd的,然后依次加载各类服务。
    Apache同时可以监听多个端口,修改httpd.conf文件中配置,我们修改端口。
    image

    2.http协议
    1. http协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。
    2. http是一个基于TCP/IP通信协议来传递数据(HTML文件,图片文件,查询结果等)。

    web服务工作原理图

    image

    3.PHP标记

    1.当解析一个文件时,PHP会寻找起始和结束标记,也就是,这告诉PHP开始和停止解析二者之间的代码。
    此种解析方式使得PHP可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被PHP解析器忽略。

    2.如果文件内容是纯PHP代码,最好在文件末尾删除PHP结束标记。

    4.设置字符集:

    header(“content-type:text/html;charset=utf-8”);

    5.PHP支持9种原始数据类型

    四种标量类型:

    1. Boolean(布尔型,不区分大小写)
    2. Integer(整型)
    <?php
    $a = 1234; // 十进制数
    $a = -123; // 负数
    $a = 0123; // 八进制数 (等于十进制 83)
    $a = 0x1A; // 十六进制数 (等于十进制 26)
    $a = 0b11111111; // 二进制数字 (等于十进制 255)
    ?>
    
    
    1. Float(浮点型,也称作double)
    2. String(字符串)

    三种复合类型:

    1. Array(数组)
    2. Object(对象)
    3. Callable(可调用)

    两种特殊类型:

    1. Resource(资源)

    a) 资源resource是一种特殊变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。
    2) NULL(无类型)

    a) 特殊的NULL值表示一个变量没有值。NULL类型唯一可能的值就是NULL。
    b) 在下列情况下一个变量被认为是NULL:
    i. 被赋值为NULL
    ii. 尚未被赋值。
    iii.删除unset()

    当前转换为boolean时,以下值被认为是FALSE:

    i. 布尔值FALSE本身
    ii. 整型值0(零)
    iii. 浮点型值 0.0(零)
    iv. 空字符串,以及字符串“0”
    v. 不包括任何元素的数组
    vi. 特殊类型NULL(包括尚未赋值的变量)

    如果想查看某个表达式的值和类型,用var_dump()函数。

    <?php
    	header("content-type:text/html;charset=utf-8");
    

    //echo输出结果:一次可输出多个数据,中间逗号分隔,没有返回值,性能略高于print

    echo "我是PHP","我喜欢PHP","<br>";
    

    //定义数组

    $arr = [1,2,3,'a',true];
    	unset($arr[0]);
    

    //var_dump()输出结果详细信息

        var_dump($arr);
    	print_r($arr); //输出数组的简单信息
    	echo "<br>";
    

    //. : 连接符
    //print输出结果:一次只能输出一个数据,且有一个返回值为1

    print '我也是PHP'."我喜欢PHP".$arr[0];
    
    5.gettypeis_style

    如果只是想得到一个易读懂的类型的表达方式用于调试,用gettype()函数。要检验某个类型,不要用gettype(),而用is_type函数
    gettype(),判断是某种类型,返回类型.
    is_type(),判断是否是某种类型,返回1或0.

    <?php
    	$str = 'hello';
    	echo gettype($str);//string
    	echo is_string($str);//1
    ?>
    

    6.表单(get post request)

    1. $_GET通过URL参数传递给当前脚本的变量的数组。
    <?php
    echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
    ?>
    
    
    2. $_POST : 当HTTP POST 请求的Content-type 是application/x-www-form-urlencoded或multipart/form-data时,会将变量以关联数组形式传入当前脚本。
    <?php
    echo 'Hello ' . htmlspecialchars($_POST["name"]) . '!';
    ?>
    
    
    3.(三) $_REQUEST : 默认情况下包含了$_GET,$_POST和$_COOKIE的数组。

    扩展:htmlspecialchars :将特殊字符转换为HTML实体

    <?php
    $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
    echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
    ?>
    
    

    7.数组转成json

    1.定义数组array()

    可以用array()函数来新建一个数组。它接受任意数量用逗号分隔的键(key)=>值(value)对。
    array(key=>value,……)

    键(key)可以是一个整数integer或字符串string
    值(value)可以是任意类型的值

    $array = [
        "foo" => "bar",
        "bar" => "foo",
    ];
    ?>
    
    
    2.Key会有如下的强制转换:
    1. 包含有合法整型值的字符串会被转换为整型。例如:键名“8”实际会被储存为8。但是“08”则不会强制转换,因为其不是一个合法的十进制数值。
    2. 浮点数也会被转换为整型,意味着其小数部分会被舍去。例如:键名8.7实际会被储存为8。
    3. 布尔值也会被转换成整型。即键名true实际会被储存为1而键名false会被储存为0.
    4. Null会被转换为空字符串,即键名null实际会被储存为""。
    5. 数组和对象不能被用为键名。坚持这么做会导致警告:illegal offset type。
    6. 如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。
    3.遍历数组
    1. Foreach(数组 as $value){}
    2. Foreach(数组 as $key => $value){}
    4.数组转换成json
    1. Json_encode : 对变量进行json编码,返回字符串,包含了value值json形式的表示。
    <?php
    $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
    
    echo json_encode($arr);
    ?>
    输出 :{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}
    

    8.php 全局变量

    1.PHP中的变量用一个美元符号后面跟变量名来表示。变量名是区分大小写的。
    2.变量名与PHP中其它的标签一样遵循相同的规则。一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。
    3.全局变量:global
    <?php
    $a = 1;
    $b = 2;
    
    function Sum()
    {
        global $a, $b;
    
        $b = $a + $b;
    }
    
    Sum();
    echo $b;
    ?>
    

    a.当前转换为boolean时,以下值被认为是FALSE:
    i. 布尔值FALSE本身
    ii. 整型值0(零)
    iii. 浮点型值 0.0(零)
    iv. 空字符串,以及字符串“0”
    v. 不包括任何元素的数组
    vi. 特殊类型NULL(包括尚未赋值的变量)

    b.所有其它值都被认为是TRUE(包括任何资源和NAN);

    c. <?php

    var_dump((bool) "");        // bool(false)
    var_dump((bool) 1);         // bool(true)
    var_dump((bool) -2);        // bool(true)
    var_dump((bool) "foo");     // bool(true)
    var_dump((bool) 2.3e5);     // bool(true)
    var_dump((bool) array(12)); // bool(true)
    var_dump((bool) array());   // bool(false)
    var_dump((bool) "false");   // bool(true)
    
    ?>
    
  • 相关阅读:
    SDN第二次作业
    事后诸葛亮
    SDN第一次上机作业
    个人作业——软件产品案例分析
    SDN第一次作业
    Alpha冲刺总结报告
    Alpha冲刺Day10
    Alpha冲刺Day9
    Alpha冲刺Day8
    Alpha冲刺Day7
  • 原文地址:https://www.cnblogs.com/zhongchao666/p/9275569.html
Copyright © 2011-2022 走看看