PHP note
后台-插件-广告管理-内容页头部广告(手机) |
目录
- 一、基本概念
- 二、语法
- 1. 变量和常量
- 规则
- 变量作用域
- 超级全局变量
- 定义常量
- 2. 数据类型比较
- ① 类型
- ② 比较
- 3. 输出
- 4. 函数
- 5. 魔术常量
- 6. 表单
- 7. 文件
- 8. Cookie
- 9. Session
- 三、数据库
注:需要有学习过其他编程语言的基础
一、基本概念
PHP(Hypertext Preprocessor) 超文本预处理器:
通用开源脚本语言,在服务器上执行,结果以纯HTML形式返回给浏览器。PHP文件可包含文本、HTML、JavaScript和PHP代码。默认文件扩展名.php
二、语法
<?php // 每行代码以;结尾 echo "Hello World"; //echo输出 $a = "aaa"; ?>- 1
- 2
- 3
- 4
- 5
1. 变量和常量
弱类型语言,不必声明变量的数据类型
规则
$开头;
区分大小写;
不包含空格;
必须以字母或下划线开始
只能包含字母、数字和下划线
变量作用域
① local(局部作用域): 函数内部声明的变量为局部变量,仅在函数内部访问。
② global(全局作用域):在所有函数外部定义的变量,拥有全局作用域。
注:函数内部不可访问全局变量,外部不能访问局部变量,若想访问,在函数内使用global关键字。
③ static:当某个函数完成时,其所有变量通常都会被删除。若让某个局部变量不要被删除,函数内第一次声明该变量时,使用static关键字
④ parameter(参数作用域):参数是通过调用代码将值传递给函数的局部变量。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
超级全局变量
- $GLOBALS
一个包含了全部变量的全局组合数组。变量的名字就是数组的键
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- $_SERVER
一个包含了诸如头信息(header)、路径(path)、和脚本位置(script locations)等等信息的数组。
'.$value.'
'; } ?>
- 1
- 2
- 3
- 4
- 5
- 6
函数名 | 描述 |
---|---|
$_SERVER['PHP_SELF'] | 当前执行脚本的文件名,与document root有关。例如:在地址为http://example.com/test.php/foo.bar的脚本中使用$SERVER[‘PHP_SELF’] 将得到/test.php/foo.bar。_FILE常量包含当前文件的完整路径和文件名。从PHP 4.3.0版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用 |
$_SERVER[‘GATEWAY_INTERFACE’] | 服务器使用的CGI规范的版本;例如:“CGI/1.1” |
$_SERVER[‘SERVER_ADDR’] | 当前运行脚本所在的服务器的 IP 地址 |
$_SERVER['SERVER_NAME'] | 当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。 |
$_SERVER[‘SERVER_SOFTWARE’] | 服务器标识字符串,在响应请求时的头信息中给出。例如:Apache/2.2.24 |
$_SERVER[‘SERVER_PROTOCOL’] | 请求页面时通信协议的名称和版本。例如:“HTTP/1.0” |
$_SERVER[‘REQUEST_METHOD’] | 访问页面使用的请求方法。例如:“GET”,“HEAD”,“POST”,“PUT” |
$_SERVER[‘REQUEST_TIME’] | 请求开始时的时间戳,从 PHP 5.1.0 起可用。 例如:1377687496 |
$_SERVER[‘QUERY_STRING’] | query string(查询字符串),如果有的话,通过它进行页面访问 |
$_SERVER[‘HTTP_ACCEPT’] | 当前请求头中(若存在)Accept项的内容 |
$_SERVER[‘HTTP_ACCEPT_CHARSET’] | 当前请求头中(若存在)Accept-Charset项的内容。例如:“iso-8859-1,*,utf-8” |
$_SERVER['HTTP_HOST'] | 当前请求头中(若存在)Host项的内容 |
$_SERVER['HTTP_REFERER'] | 引导用户代理到当前页的前一页的地址(如果存在),由user agent设置决定。但不是所有的用户代理都会设置该项,有的还提供了修改HTTP_REFERER的功能。简言之,该值并不可信 |
$_SERVER['HTTP_USER_AGENT'] | 获取客户端浏览器以及版本号。例如:Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13 |
$_SERVER[‘HTTPS’] | 如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值 |
$_SERVER[‘REMOTE_ADDR’] | 浏览当前页面的用户的 IP 地址 |
$_SERVER[‘REMOTE_HOST’] | 浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的REMOTE_ADDR |
$_SERVER[‘REMOTE_PORT’] | 用户机器上连接到 Web 服务器所使用的端口号 |
$_SERVER[‘SCRIPT_FILENAME’] | 当前执行脚本的绝对路径 |
$_SERVER[‘SERVER_ADMIN’] | 该值指明了Apache服务器配置文件中的SERVER_ADMIN参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值 |
$_SERVER[‘SERVER_PORT’] | Web服务器使用的端口。默认值为 “80”。如果使用SSL安全连接,则这个值为用户设置的 HTTP 端口 |
$_SERVER[‘SERVER_SIGNATURE’] | 包含了服务器版本和虚拟主机名的字符串 |
$_SERVER[‘PATH_TRANSLATED’] | 当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果 |
$_SERVER['SCRIPT_NAME'] | 包含当前脚本的路径。这在页面需要指向自己时非常有用。FILE常量包含当前脚本的完整路径和文件名 |
$_SERVER[‘SCRIPT_URI’] | URI用来指定要访问的页面。例如:“/index.html” |
- $_GET
应用于收集表单数据,在HTML form标签的指定该属性:method=“get” - $_POST
用于收集表单数据,在HTML form标签的指定该属性:method=“post”
- 1
- 2
- 3
- 4
注:
虽然$_REQUEST可以接收GET/POST传值,但基于安全方面考虑,前端用GET/POST,后端也要用GET/POST
定义常量
设置常量,使用define函数,语法如下:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
参数:名字,值,大小写是否敏感(默认敏感,可不写)
常量默认是全局的
- 1
2. 数据类型比较
① 类型
- String(字符串)
- Integer(整型)
整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0) - Float(浮点型)
浮点数是带小数部分的数字,或是指数形式 - Boolean(布尔型)
TRUE or FALSE - Array(数组)
数值数组:带有数字 ID 键的数组
关联数组:带有指定的键的数组,每个键关联一个值
多维数组:包含一个或多个数组的数组
- 1
- 2
- 3
- 4
- 5
- 6
- Object(对象)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- NULL(空值)
- Resource(资源类型)
常见资源数据类型有打开文件、数据库连接、图形画布区域等。使用get_resource_type()函数可以返回资源类型
② 比较
松散比较:==,比较值,不比较类型
严格比较:===,比较值,也比较数据类型和顺序
3. 输出
- echo
无返回值,可以输出一个或多个字符串
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- print
返回1,只允许输出一个字符串 - EOF(heredoc)
一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。
标题
段落
EOF; // 结束需要独立一行且前后不能空格 // 位于开始标记和结束标记之间的变量可以被正常解析,但是函数不可以 ?>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- print_r
打印关于变量的易于理解的信息,如果变量数据类型是string、integer或float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素 - var_dump
此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值
注:var_dump返回表达式的类型与值而print_r仅返回结果,调试代码使用var_dump更便于阅读。
4. 函数
<?php fuction add($a) { return $a + 1; } echo add(1); ?>- 1
- 2
- 3
- 4
- 5
- 6
- 内置函数
strlen() 返回字符串长度(字节数)
strpos() 在字符串中查找一个字符或一段指定文本。若匹配,返回第一个匹配的位置;否则,返回FALSE
count() 返回数组的长度(元素的数量)
sort() 对数组进行升序排列
rsort() 对数组进行降序排列
asort() 根据关联数组的值,对数组进行升序排列
ksort() 根据关联数组的键,对数组进行升序排列
arsort() 根据关联数组的值,对数组进行降序排列
krsort() 根据关联数组的键,对数组进行降序排列
phpinfo() 显示PHP所有相关信息
eval() 执行一个字符串表达式,返回表达式的值
system() 用于执行操作系统命令
explode() 将一个字符串根据指定分隔符拆分成数组
end() 取数组的最后一个元素 - 判断
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 循环
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
5. 魔术常量
- __LINE__:返回当前行号的数字
- __FILE__:返回当前文件的完整路径和文件名
- __DIR__:返回当前文件所在的目录的路径
- __FUNCTION__:返回当前函数的名称
- __CLASS__:返回当前类的名称
- __METHOD__:返回当前方法(函数)的名称
6. 表单
前端样式用HTML实现
$name=$_REQUEST['name'];- 1
直接用$_REQUEST 获取值会存在安全问题(xss)
加固:
- 1
7. 文件
- 文件包含
应用:当有大量的文件需要被引用的时候,开发出一个页面,处理调用多个页面的内容
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
open.php另写,用include\require均可
包含语句包含的文件,最终以主文件的格式打开
例:若包含文件为.txt文件,最终会以.php格式打开
- 文件上传
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
isset和empty是两个常用的函数,用于检查变量是否已设置及是否为空
isset()检查变量是否已设置并且不为null
empty()检查变量是否为空,包括空字符串、空数组、false、0和null
注:如果变量未声明,isset()返回false,而empty()会发出一个警告并且返回true
8. Cookie
Cookie是网站服务器存储在用户计算机上的小型文本文件。当用户访问网站时,服务器会将Cookie发送到用户的浏览器,并在用户下次访问同一网站时读取Cookie(存储在客户端)
- setcookie()
- 1
- 2
- 3
- 4
第一个参数是Cookie的名字
第二个参数是Cookie的值
第三个参数可选,Cookie的有效期,通过计算时间戳的方式设置
最后一个可选参数是Cookie的路径,用于限制Cookie的适用范围
注:setcookie()必须在任何输出到浏览器之前(即该段php代码写在html代码之前)调用,否则无法设置Cookie
在发送cookie时,cookie的值会自动进行URL编码,取回时自动解码。为防止URL编码,可使用setrawcookie()取而代之
将第三个参数(有效期)设置为过去时间(负数),即可删除cookie
- $_COOKIE
取回cookie的值,可用isset()判断是否设置cookie
"; else echo "普通访客!
"; ?>
- 1
- 2
- 3
- 4
- 5
- 6
9. Session
Session是一种服务器端的数据存储技术,用于在不同的页面或请求之间共享数据。
当用户访问一个使用Session的页面时,服务器会为该用户生成一个唯一的Session ID,并将该ID存储在服务器上。同时,服务器会创建一个与Session ID相关联的Session文件,用于保存用户的数据。
用户在访问其他使用Session的页面时,浏览器会将Session ID发送到服务器,服务器通过Session ID找到对应的Session文件,并读取其中存储的数据,供页面使用。
"; echo "Age: " . $_SESSION['age'] . "
"; // 清空Session session_unset(); // 销毁Session session_destroy(); ?>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
三、数据库
PHP常用MySQL数据库,建议使用以下方法连接MySQL:
- MySQLi
- PDO
- MySQLi(面向过程)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- MySQLi(面向对象)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- PDO
connect_sql.php
<?php $servername = "mysql:host=localhost;dbname=dbname"; $username = "root"; $password = "root"; try { $conn = new PDO("mysql:host=$servername;", $username, $password); echo "连接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |