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文件中配置,我们修改端口。

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

web服务工作原理图

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(整型)
  1. <?php
  2. $a = 1234; // 十进制数
  3. $a = -123; // 负数
  4. $a = 0123; // 八进制数 (等于十进制 83)
  5. $a = 0x1A; // 十六进制数 (等于十进制 26)
  6. $a = 0b11111111; // 二进制数字 (等于十进制 255)
  7. ?>
  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()函数。

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

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

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

//定义数组

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

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

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

//. : 连接符

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

  1. print '我也是PHP'."我喜欢PHP".$arr[0];
5.gettype与is_style

如果只是想得到一个易读懂的类型的表达方式用于调试,用gettype()函数。要检验某个类型,不要用gettype(),而用is_type函数

gettype(),判断是某种类型,返回类型.

is_type(),判断是否是某种类型,返回1或0.

  1. <?php
  2. $str = 'hello';
  3. echo gettype($str);//string
  4. echo is_string($str);//1
  5. ?>

6.表单(get post request)

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

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

  1. <?php
  2. $new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
  3. echo $new; // &lt;a href='test'&gt;Test&lt;/a&gt;
  4. ?>

7.数组转成json

1.定义数组array()

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

array(key=>value,……)

键(key)可以是一个整数integer或字符串string

值(value)可以是任意类型的值

  1. $array = [
  2. "foo" => "bar",
  3. "bar" => "foo",
  4. ];
  5. ?>
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形式的表示。
  1. <?php
  2. $arr = array ('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);
  3. echo json_encode($arr);
  4. ?>
  5. 输出 :{“a”:1,”b”:2,”c”:3,”d”:4,”e”:5}

8.php 全局变量

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

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

i. 布尔值FALSE本身

ii. 整型值0(零)

iii. 浮点型值 0.0(零)

iv. 空字符串,以及字符串“0”

v. 不包括任何元素的数组

vi. 特殊类型NULL(包括尚未赋值的变量)

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

c. <?php

  1. var_dump((bool) ""); // bool(false)
  2. var_dump((bool) 1); // bool(true)
  3. var_dump((bool) -2); // bool(true)
  4. var_dump((bool) "foo"); // bool(true)
  5. var_dump((bool) 2.3e5); // bool(true)
  6. var_dump((bool) array(12)); // bool(true)
  7. var_dump((bool) array()); // bool(false)
  8. var_dump((bool) "false"); // bool(true)
  9. ?>

17、php的更多相关文章

  1. ABP(现代ASP.NET样板开发框架)系列之17、ABP应用层——参数有效性验证

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之17.ABP应用层——参数有效性验证 ABP是“ASP.NET Boilerplate Project (ASP. ...

  2. [安卓] 17、一个简单的例子学安卓侧滑设计——用开源slidingmenu

    效果如下: 下面是工程结构: 整个工程包括android-v7.SlidingMenu-lib和主工程SlidingMenuTest部分 其中前两个作为lib,后一个为主工程 主工程包含两个lib工程 ...

  3. 《TCP/IP详解卷1:协议》第17、18章 TCP:传输控制协议(1)-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  4. 《TCP/IP详解卷1:协议》第17、18章 TCP:传输控制协议(2)-读书笔记

    章节回顾: <TCP/IP详解卷1:协议>第1章 概述-读书笔记 <TCP/IP详解卷1:协议>第2章 链路层-读书笔记 <TCP/IP详解卷1:协议>第3章 IP ...

  5. 17、Map接口及其常用子类(Hashtable、HashMap、WeakHashMap)

    17.Map接口 Map没有继承Collection接口,Map提供key到value的映射.一个Map中不能包含相同的key,每个key只能映射一个value.Map接口提供3种集合的视图,Map的 ...

  6. 17、字符串转换整数 (atoi)

    17.字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非 ...

  7. mysql数据库优化课程---17、mysql索引优化

    mysql数据库优化课程---17.mysql索引优化 一.总结 一句话总结:一些字段可能会使索引失效,比如like,or等 1.check表监测的使用场景是什么? 视图 视图建立在两个表上, 删除了 ...

  8. 17、bootStrap组件

    1.bootStrap组件 无数可复用的组件,包括字体图标.下拉菜单.导航.警告框.弹出框等更多功能. 2.字体图标 ①不要和其他图标混合使用 ②只能对内容为空的元素起作用 3.下拉菜单 <di ...

  9. 第3节 hive高级用法:16、17、18

    第3节 hive高级用法:16.hive当中常用的几种数据存储格式对比:17.存储方式与压缩格式相结合:18.总结 hive当中的数据存储格式: 行式存储:textFile sequenceFile ...

  10. 17、生命周期-BeanPostProcessor在Spring底层的使用

    17.生命周期-BeanPostProcessor在Spring底层的使用 bean赋值.注入其他组件.@Autowired注解.生命周期注解.@Async --都是 BeanPostProcesso ...

随机推荐

  1. docker中的数据库

      注:自从开始使用docker,部署方面的事情就简单多了.使用docker构建的数据库容器不用直接安装,开启后就可以使用,也比以前方便很多.下面将一些要点记录下来. 下面的例子使用以下环境: - 系 ...

  2. Asp.Net Core 404处理

    在使用Asp.Net Core Mvc时 404处理整理如下 一.自带404状态处理 1.控制器视图子弹404视图 NotFoundResult,NotFoundObjectResult // // ...

  3. [Python设计模式] 第25章 联合国维护世界和平——中介者模式

    github地址:https://github.com/cheesezh/python_design_patterns 题目背景 联合国在世界上就是中介者的角色,各国之间的关系复杂,类似不同的对象和对 ...

  4. Convert ResultSet to JSON and XML

    public static JSONArray convertToJSON(ResultSet resultSet) throws Exception { JSONArray jsonArray = ...

  5. phpBB3导入用户的Python脚本

    关联的数据表 在phpBB3中导入用户时, 需要处理的有两张表, 一个是 users, 一个是 user_group. 如果是新安装的论坛, 在每次导入之前, 用以下语句初始化: DELETE FRO ...

  6. 【iOS】ARC-MRC下的单例及其应用

    单例的应用十分普遍,单例模式使一个类仅仅有一个实例. *易于供外界訪问. *方便控制实例个数,节约系统资源. *OC中的常见单例: 如:UIApplication,  NSNotificationCe ...

  7. 试水STF(smartphone test farm)

    STF简介 简介: STF , smartphone test farm, 是一款能够通过浏览器远程管理智能设备的系统, 能为移动自动化测试提供方便快捷的服务,免去测试工程师的后顾之忧. 功能点: 支 ...

  8. C# 批量图片打包下载

    实现点击下载功能,可以一次性下载多个附件.具体实现代码如下 : private void Com_XZTP_FJ(string maiId, string wtfjdz, string CLwtfjd ...

  9. (转)常用的 TCP KeepAlive 参数

    socket编程里通过setsockopt系统调用针对单独的socket进行设置,可以覆盖Linux Kernel的选项.举个例子,以我的系统默认设置为例,kernel默认设置的tcpkeepaliv ...

  10. Asp.Net \uxxx Unicode编码解码

    /// <summary> /// Unicode编码 /// </summary> /// <param name="str"></pa ...