后端编程语言PHP

| 版权声明:本文为博主原创文章,未经博主允许不得转载。

一、PHP 简介

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言

PHP 脚本在服务器上执行。

什么是 PHP?(超文本预处理器)

  • PHP 是 "PHP Hypertext Preprocessor" 的首字母缩略词
  • PHP 是一种被广泛使用的开源脚本语言
  • PHP 脚本在服务器上执行
  • PHP 没有成本,可供免费下载和使用

什么是 PHP 文件?

  • PHP 文件能够包含文本、HTML、CSS 以及 PHP 代码
  • PHP 代码在服务器上执行,而结果以纯文本返回浏览器
  • PHP 文件的后缀是 ".php"

PHP 能够做什么?

  • PHP 能够生成动态页面内容
  • PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
  • PHP 能够接收表单数据
  • PHP 能够发送并取回 cookies
  • PHP 能够添加、删除、修改数据库中的数据
  • PHP 能够限制用户访问网站中的某些页面
  • PHP 能够对数据进行加密
  • 通过 PHP,您可以不受限于只输出 HTML。您还能够输出图像、PDF 文件、甚至 Flash 影片。您也可以输出任何文本,比如 XHTML 和 XML。

为什么使用 PHP?

  • PHP 运行于各种平台(Windows, Linux, Unix, Mac OS X 等等)
  • PHP 兼容几乎所有服务器(Apache, IIS 等等)
  • PHP 支持多种数据库
  • PHP 是免费的。请从官方 PHP 资源下载:www.php.net
  • PHP 易于学习,并可高效地运行在服务器端

二、PHP 语法

PHP 脚本在服务器上执行,然后向浏览器发送回纯 HTML 结果。

  • PHP 脚本可放置于文档中的任何位置。
  • PHP 脚本以 <?php 开头,以 ?> 结尾:
1 <?php
2 // 这是单行注释
3 # 这也是单行注释
4 /*
5 这是多行注释块
6 它横跨了
7 多行
8 */
9 ?>
  • PHP 文件的默认文件扩展名是 ".php"。
  • PHP 文件通常包含 HTML 标签以及一些 PHP 脚本代码。
  • php的逻辑代码不会输出,仅仅只会返回执行完毕的结果

三、PHP 基础

1.变量

  • 变量以$符号开头,其后是变量的名称
  • 变量名称必须以字母或下划线开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及_)
  • 变量名称对大小写敏感
 1 // 变量以`$`符号开头,其后是变量的名称
 2 // 变量名称必须以字母或下划线开头
 3 $a;
 4 $b;
 5 $a1;
 6 $_abc;
 7
 8 // 变量名称不能以数字开头
 9 // 变量名称只能包含字母数字字符和下划线(`A-z`、`0-9` 以及` _`)
10 // 下面这些是错误的变量定义
11 $1;
12 $哈哈;
13 $^&*;
14
15 //变量名称对大小写敏感(`$y` 与`$Y` 是两个不同的变量)
16 // 下面定义的两个变量是不同的,大写,小写x
17 $x;
18 $X;

2.内容输出

  • echo:输出简单数据类型,如字符串、数值
  • print_r():输出复杂数据类型,如数组
  • var_dump():输出详细信息,如对象、数组
 1 $arr =array(1,2,‘123‘);
 2 echo‘123‘;
 3 // 结果为 123
 4
 5 print_r($arr);
 6 // 结果为 Array ( [0] => 1 [1] => 2 [2] => 123 )
 7
 8 var_dump($arr);
 9 /* 结果为array
10 0 => int 1
11 1 => int 2
12 2 => string ‘123‘ (length=3)
13 */

3.数据类型

  • PHP支持的数据类型包括:字符型、整型、浮点型、布尔型、数组、对象、NULL
  • 定义字符串时需要注意:
  • 单引号:`` 内部的内容只是作为字符串
  • 双引号:"" 如果内部是PHP的变量,那么会将该变量的值解析
  • 字符串连接:不同于JavaScript,PHP中使用.进行连接
  • gettype() 检测数据类型
  • is_string() 是否是字符
  • is_array() 是否是数组
 1 // 字符串
 2 $str = ‘123‘;
 3
 4 // 字符串连接
 5 $str2 = ‘123‘.‘哈哈哈‘;
 6
 7 // 字符串
 8
 9 // 整数
10 $numA = 1; //正数
11 $numB = -2;//负数
12
13 // 浮点数
14 $x = 1.1;
15
16 // 布尔
17 $a = true;
18 $b = false;
19
20 // 数组
21 $arr = array(‘123‘,123)

4.运算符

  • 基本与Javascript语法一致
  • 算数运算符: +,-,/,*,%
  • 赋值运算符: x = y,x += y,x -= y
  • . 号表示链接符
  • 分支、循环语句
  • 与Javascript基本一致
  • foreach()
  • switch()
1 <?php
2 $x=10;
3 $y=6;
4 echo ($x + $y); // 输出 16
5 echo ($x - $y); // 输出 4
6 echo ($x * $y); // 输出 60
7 echo ($x / $y); // 输出 1.6666666666667
8 echo ($x % $y); // 输出 4
9 ?>

5.函数

  • 与Javascript基本一致
  • 函数名对大小写不敏感
  • 默认参数
  • 文件引入
  • include 引入失败后程序继续执行
  • require 引入失败后程序终止执行
 1 // 基础语法
 2 function functionName() {
 3   这里写代码
 4 }
 5
 6 // 无参数 无返回值的函数
 7 function sayhi(){
 8     echo "Hello World";
 9 }
10
11 // 有参数 无返回值的函数
12 function sayName($name){
13     echo $name.‘你好哦‘;
14 }
15
16 // 调用
17 sayName(‘小狐狸‘);
18
19 // 有参数,参数有默认值的函数
20 function sayFood($food=‘西兰花‘){
21     echo $food.‘好好吃‘;
22 }
23
24 // 调用
25 sayFood(‘西葫芦‘);// 如果传入参数,就使用传入的参数
26 sayFood();// 如果不传入参数,直接使用默认值
27
28 // 有参数,有返回值的函数
29 function sum($a,$b){
30     return $a+$b
31 }
32 sum(1,2);// 返回值为1+2 = 3

6.超全局变量

  • $_GLOBALS ---引用全局作用域中可用的全部变量
  • $_SERVER ---这种超全局变量保存关于报头、路径和脚本位置的信息。
  • $_GET ---用于收集提交 HTML 表单 (method="get") 之后的表单数据。$_GET 也可以收集 URL 中的发送的数据。
  • $_POST ---广泛用于收集提交 method="post" 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
  • $_REQUEST ---用于收集 HTML 表单提交的数据。
  • $_FILES ---通过使用 PHP 的全局数组 $_FILES,你可以从客户计算机向远程服务器上传文件。
  • $_COOKIE
  • $_SESSION
  • $_ENV

7.表单处理

  • 表单name属性的是用来提供给服务端接收所传递数据而设置的
  • 表单action属性设置接收数据的处理程序
  • 表单method属性设置发送数据的方式
  • *当上传文件是需要设置 enctype="multipart/form-data"
  • $_GET接收 get 传值
  • $_POST接收 post 传值
  • $_FILES接收文件上传

GET 和 POST 都创建数组(例如,array( key => value, key2 => value2, key3 => value3, ...))。此数组包含键/值对,其中的键是表单控件的名称,而值是来自用户的输入数据。

1)$_GET 是通过 URL 参数传递到当前脚本的变量数组。

2)$_POST 是通过 HTTP POST 传递到当前脚本的变量数组。

何时使用 GET?

通过 GET 方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在 URL 中)。GET 对所发送信息的数量也有限制。限制在大于 2000 个字符。不过,由于变量显示在 URL 中,把页面添加到书签中也更为方便。

GET 可用于发送非敏感的数据。

注释:绝不能使用 GET 来发送密码或其他敏感信息!

何时使用 POST?

通过 POST 方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入 HTTP 请求的主体中),并且对所发送信息的数量也无限制。

此外 POST 支持高阶功能,比如在向服务器上传文件时进行 multi-part 二进制输入。

不过,由于变量未显示在 URL 中,也就无法将页面添加到书签。

提示:开发者偏爱 POST 来发送表单数据。

<form> 标签的 enctype 属性规定了在提交表单时要使用哪种内容类型。在表单需要二进制数据时,比如文件内容,请使用 "multipart/form-data"。

<input> 标签的 type="file" 属性规定了应该把输入作为文件来处理。举例来说,当在浏览器中预览时,会看到输入框旁边有一个浏览按钮。

8.header

header()函数 用来向客户端(浏览器)发送报头,如果出现中文无法显示,可以尝试在PHP代码顶部添加如下代码:

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

浏览器访问http服务器,接收到响应时,会根据响应报文头的内容进行一些具体的操作,在php中,我们能够使用 header来设置这些内容

1)设置文本编码

设置编码格式为:utf-8

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

2)设置页面跳转

设置跳转到百度首页

header(‘location:http://www.baidu.com‘);

3)设置页面间隔刷新

header(‘refresh:3; url=http://www.xiaomi.com‘);

四、PHP 表单

1.PHP_GET数据获取

在PHP中,如果想要获取通过get方法提交的数据,可以通过$_GET对象来获取

HTML代码: 下面就是一个简单的表单代码,将数据提交到01.php,使用get的方式

1 <form action="01.php" method="get" >
2   <label for="">姓名:
3       <input type="text" name= "userName"></label>
4       <br/>
5   <label for="">邮箱:
6       <input type="text" name= "userEmail"></label>
7       <br/>
8       <input type="submit" name="">
9 </form>

PHP代码:

<?php
    echo "<h1>GET_PAGE</h1>";
    echo ‘userName:‘.$_GET[‘userName‘];
    echo ‘<br/>‘;
    echo ‘userEmail:‘.$_GET[‘userEmail‘];
 ?>

2.PHP_POST数据获取

在PHP中,如果想要获取通过post方法提交的数据,可以通过$_POST对象来获取

HTML代码: 下面就是一个简单的表单代码,将数据提交到02.php,使用post的方式(注意:代码中的method改为post)

1 <form action="02.php" method="post" >
2   <label for="">姓名:
3       <input type="text" name= "userName"></label>
4       <br/>
5   <label for="">邮箱:
6       <input type="text" name= "userEmail"></label>
7       <br/>
8       <input type="submit" name="">
9 </form>

PHP代码:

1 <?php
2     echo "<h1>POST_PAGE</h1>";
3     echo ‘userName:‘.$_POST[‘userName‘];
4     echo ‘<br/>‘;
5     echo ‘userEmail:‘.$_POST[‘userEmail‘];
6  ?>

3.POST&GET错误处理

当我们直接访问POST&GET页面时由于并没有传递任何数据,会因为$_GET或$_POST不存在对应的key而报错.

处理方式1:

使用array_key_exists(key, 数组)函数来进行判断

参数1: 要检测的key字符串

参数2: 检验的数组

if(array_key_exists(‘name‘, $_GET)){

//如果有数据 再去读取

}else{

// 反之 可以执行一些 其他的逻辑

}

五、PHP 保存上传文件

php中上传的文件,会先以临时文件的方式保存起来,我们将其移动到其他的位置即可

1.$_FILE

在php中 能够通过$_FILE 获取上传的文件

浏览器端部分代码:

  • 假定浏览器在form表单中如下标签
  • 注1form提交数据需使用post提交
  • 注2form提交数据时,需在form表单中添加enctype=multipart/form-data属性
1 <form action=‘xx.php‘ method=‘post‘ enctype=‘multipart/form-data‘>
2     <input type=‘file‘ name=‘icon‘>
3     <input type=‘submit‘>
4 </form>

服务端代码:

  • $_FILES用法跟$_GET,$_POST类似,都是关系型数组
  • #_FILE[‘key‘]:可以获取对应上传的文件,这里的key跟提交时的name相对应
  • #_FILE[‘key‘][‘name‘] 可以获取上传的文件名
  • #_FILE[‘key‘][‘tmp_name‘]可以获取上传的文件保存的临时目录
1 <?php
2 // 可以打印 $_FILES的所有信息
3 print_r($_FILES);
4 ?>

2.move_uploaded_file(移动文件)

上传的临时文件,一会就会被自动删除,我们需要将其移动到保存的位置

move_uploaded_file参数:

参数1:移动的文件

参数2:目标路径

move_uploaded_file($_FILES[‘photo‘][‘tmp_name‘], ‘./images/test.jpg‘);

六、PHP设置上传文件大小

在使用wamp过程中,如果想要修改上传的文件显示,需要如何设置呢?

修改php.ini

1.步骤:

  • 左键点击wamp
  • 选择php
  • 在弹出的窗口中选择php.ini
  • 在打开的文件中进行修改(修改步骤如下)
  • 修改完毕,保存并重启wamp

2.修改内容:

使用文本编辑工具的搜索功能找到下列选项 进行修改

设置文件最大上传限制(值的大小可以根据需求修改)

  • file_uploads = On   ;                    是否允许上传文件 On/Off 默认是On
  • upload_max_filesize = 32M ;        上传文件的最大限制
  • post_max_size = 32M ;               通过Post提交的最多数据

考虑网络传输快慢,这里修改一些参数

  • max_execution_time = 30000      ; 脚本最长的执行时间 单位为秒
  • max_input_time = 600            ; 接收提交的数据的时间限制 单位为秒
  • memory_limit = 1024M            ; 最大的内存消耗
时间: 2024-12-21 19:41:27

后端编程语言PHP的相关文章

移动端开发者眼中的前端开发流程变迁与前后端分离

写在最开始 移动端与前端的区别 前端开发的混沌时代 后端 MVC MVC 方案实现 MVC 的缺点与改进 前端只写 Demo HTML 模板 后端 MVC 架构总结 AJAX 与前端 MVC 前后端分离的缺点 双端 MVC 不统一 SEO 性能不够 集中 Or 分离 Nodejs 前后端分离的哲学 Nodejs 分层 实战应用 风险控制 总结 参考资料 写在最开始 这是一篇面向移动端开发者的科普性文章,从前端开发的最初流程开始,结合示范代码,讨论开发流程的演变过程,希望能覆盖一部分前端开发技术栈

Java与go哪个更适合后端开发呢?哪个更适合新手呢?

Java语言目前在后端开发领域有广泛的应用,尤其是大型互联网平台往往选择Java作为主要的后端编程语言.同时,Java自身的生态比较健全,也有大量的成功案例,所以采用Java做后端编程语言是一个风险比较小的选择. Go语言是一个非常新的编程语言,是Google在2009年才正式发布的编程语言,Go语言强调运行性能和开发效率,在多处理器环境下Go语言有设计上的优势.目前随着大数据的发展,Go语言得到了更多的重视,很多大数据开发人员开始尝试使用Go语言做大型的并发式服务. 可以说大数据时代给了Go语

“全栈”工程师 请不要随意去做

今天我来给大家说说 "全栈工程师" 的事儿. 写这篇文的背景原因: 很简单就是最近越来越多的人想做[全栈工程师],他们的目标就是全栈,他们才入行短短1-2年,甚至刚从培训班出来:我的目标是做全栈,我啥都要学会,啥都会写,这样我就是大牛了,可以挣大钱,就算创业,我也不用招那么多人,一个人搞定一个产品,融资上市 ,CEO白富美,balabala... 我给他的回复是: 去你xx的,你连JS 数组和对象用法都搞不清,抄几个效果,看几个视频教程摸索摸索就要做万能人了? "全栈&quo

如何成为一名优秀的Web前端工程师?

何为:前端工程师? 前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.Web前端开发技术主要包括三个要素:HTML.CSS和JavaScript!它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性.组件的易用性.分层语义模板和浏览器分级支持等.随着近两三年来RIA(Rich Internet Applications的缩写,中文含义为:丰富的因特网应用程

「更快!更爽!」吹水新闻2.0

这篇文章首发在吹水小镇:http://blog.reetsee.com/archives/388 要在手机或者电脑看到更好的图片或代码欢迎到博文原地址.也欢迎到博文原地址批评指正. 转载请注明: 吹水小镇 | reetsee.com 原文链接地址: http://blog.reetsee.com/archives/388 历时半年的「吹水新闻」重构升级终于完成 吹水新闻2.0的地址是:http://news.reetsee.com: 吹水新闻1.0的地址是:http://reetseenews.

2017 年 PHP 程序员未来路在何方

PHP 从诞生到现在已经有20多年历史,从Web时代兴起到移动互联网退潮,互联网领域各种编程语言和技术层出不穷, Node.js . GO . Python 不断地在挑战 PHP 的地位.这些技术的推动者非常热衷于唱衰 PHP , PHP 语言的未来在哪里?PHP 程序员当如何应对未来的变革? 作为老牌的 Web 后端编程语言,PHP 在全球市场占有率非常高,仅次于 Java ,从各个招聘网站的数据上来看PHP 开发的职位非常多,薪资水平也非常不错.实际在中小企业.互联网创业公司PHP的市场地位

部署Node.js项目(CentOS)

摘自:https://help.aliyun.com/document_detail/50775.html Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用来方便地搭建快速的易于扩展的网络应用.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效,非常适合运行在分布式设备的数据密集型的实时应用.Node.js 的包管理器 npm,是全球最大的开源库生态系统.典型的应用场景包括: 实时应用:如在线聊天,实时通知推送等等(如socke

夜空中最亮的星:慕课网新手学习指南_慕课手记

首先标题是为了凑够标准的十个字,如果你这会去数了一下然后想评论说不是十个字,那我佩服你的求知精神...进来的肯定不是看我瞎扯淡的,我们步入正题. 慕课网作为国内不能说是最大,但是起码口碑最好的一个IT学习的网站,受到了很多人的欢迎,但是在推荐给朋友的过程中,我就发现了一些问题,那就是纯小白根本不知道怎么开始学习.这里我要说一下什么叫做纯小白,你以为不知道变量,命令提示符,HTTP协议,这些就是小白了吗?那你就错了,我今天要说的是连怎么设置IP地址,怎么设置百度为首页,连自己的操作系统是winxp

我也想成为一名出色的web前端开发工程师

随着互联网的发展,正式的前端工程师角色被行业认可,到了2010年,互联网开始全面进入移动时代,前端工程师的地位越来越重要,前端领域的技术发展也越来越快,各种新的思想.设计模式.工具和平台都快速发展,对前端工程师的技能要求也越来越高. 何为前端工程师?前端工程师,也叫Web前端开发工程师.他是随着web发展,细分出来的行业.它要求前端开发工程师不仅要掌握基本的Web前端开发技术,网站性能优化.SEO和服务器端的基础知识,而且要学会运用各种工具进行辅助开发以及理论层面的知识,包括代码的可维护性.组件