当前位置: 首页 > news >正文

PHP从入门到精通—PHP开发入门-PHP概述、PHP开发环境搭建、PHP开发环境搭建、第一个PHP程序、PHP开发流程

每开始学习一门语言,都要了解这门语言和进行开发环境的搭建。同样,学生开始PHP学习之前,首先要了解这门语言的历史、语言优势等内容以及了解开发环境的搭建。

PHP概述

Ø 认识PHP

PHP最初是由Rasmus Lerdorf于1994年为了维护个人网页而编写的一个简单程序。这个程序用来显示 Rasmus Lerdorf 的个人履历以及统计网页流量,因此最初称为个人主页(Personal Home Page)。后来受到GNU的影响,它更名为PHP(Hypertext Preprocessor,超文本预处理器)。

PHP是全球网站使用最多的脚本语言之一,从最初的PHP/FI到现在的PHP 7,经过多次的重写和扩展,与Linux、Apache和MySQL共同组成了一个强大的Web应用程序平台(简称LAMP)。

PHP作为服务器端Web程序开发语言,主要有以下两方面原因:

l PHP是一种服务器端、HTML嵌入式的脚本语言,因此适合Web开发。

l PHP是B/S(Browser/Server,浏览器/服务器)架构,即服务器启动后,用户可以不使用客户端软件,而是使用浏览器进行访问,这种方式既保持了图形化的用户界面,又大大减少了应用程序的维护量。

Ø PHP语言优势

PHP之所以成为目前最流行的服务器端Web程序开发语言之一,是因为它具有很多优势,具体如下所示。

1.跨平台

PHP几乎支持所有的操作系统平台,如Windows、UNIX、Linux等。此外,还支持多种Web服务器,如Apache、IIs等

2.开源免费

PHP是开源且免费,此外,LAMP平台中的Linux、Apache、MySQL都是免费软件,这可以为网站开发者节省一部分开支。

3.面向对象

PHP支持面向对象程序设计,因此可以用来开发大型商业程序。另外,PHP也支持面向过程程序设计。

4.支持多种数据库

PHP支持多种数据库,如MySQL、Oracle、SQL Server等,其中MySQL是网站开发首选的数据库,它与PHP是黄金组合。

5.易学习

PHP嵌入在HTML中,编辑方便,语法简单,内置函数丰富,开发速度快,非常容易学习。

Ø PHP的应用领域

全球有60% 的网站都在使用PHP技术进行开发,包括Facebook、谷歌、百度、新浪等国内外一线互联网公司。PHP正吸引着越来越多的Web开发人员,其应用领域非常广泛,如网站开发、OA办公系统、电子商务、CRM管理系统、ERP系统、手机APP接口及API接口、网页游戏后台、服务器脚本等。

PHP开发环境搭建

Ø 常见的PHP集成开发环境

在PHP的学习阶段,通常使用Windows下的PHP集成开发环境。常见的PHP集成开发环境有WampServer、AppSer、XAMPP、phpStudy等,这些软件之间稍微有些差异。每种开发软件都有不同的版本,建议安装较高的版本。

因为相对于Windows操作系统,Linux操作系统更加稳定和安全,所以实际的线上运行环境中大多搭建在Linux操作系统上。在Linux下搭建运行环境时可以选择使用源码方式安装或者使用LAMP一键安装。

出于快速开发和方便使用的目的,本书将采用WampServer集成环境来搭建实验环境。WampServer简称WAMP(Windows+Apache+MySQL+PHP),是一组常用来搭建动态网站的开源软件,完全免费。

Ø 安装WampServer

大家可以直接从WampServer的官方网站(wampserver.com/)下载,如图所示。

WampServer只有Windows系统的安装版本,本书将以64位Windows 7系统为例。单击上图中的WAMP SERVER 64 BITS(X64)3.0.6,进入下载界面并进行下载,如图所示。

单击图中的Download按钮,就可以进行下载。下载安装文件成功后,就可以安装了。

(1)进入安装文件所在目录,双击.exe安装文件进入语言选择界面,如图所示。

(2)单击OK按钮,进入许可协议界面,如图所示。选择I accept the agreement选项

(3)单击Next按钮,进入安装注意事项界面,如图所示。

注意图中红色字体内容,其中必须确保安装VC9、VC10、VC11、VC13、VC14 和 VC15包,若缺少某个包,则可以拖动右侧滚动条,下文有相应的下载地址。

4)单击Next按钮,进入选择软件安装位置界面,如图所示。单击Browse按钮,选择软件安装位置为D:\wamp64,默认位置为C:\wamp64。

(5)安装位置选择完成后,单击Next按钮,进入选择开始菜单文件夹界面,如图所示。

(6)单击Browse按钮,选择程序快捷方式在开始菜单文件夹中的位置,然后单击Next按钮,进入开始安装界面,如图所示。

(7)单击Install按钮,进入安装界面,如图所示。

安装结束前,程序会提示用户是否使用IE浏览器作为默认浏览器,如图所示。

使用Chrome浏览器作为默认浏览器,因此在上图中单击“是(Y)”按钮。接着根据Chrome浏览器安装位置,找到对应的.exe程序,如图所示。

接着程序提示是否将记事本作为文本编辑器,也可以指定其他文本编辑器,此处单击“否(N)”按钮,如图所示。

(8)安装完成后,进入注意事项界面,如图所示。

(9)单击Next按钮,进入完成安装界面,如图所示。单击Finish按钮,WampServer安装完成。

WampServer安装完成后,桌面上会出现一个“W”图标的快捷方式,双击该快捷方式,就可以启动WampServer。

在状态栏的右下角会出现一个W图标,图标颜色由红色变为绿色,则说明所有服务成功开启。当用鼠标右击该图标时,会出现一个菜单(见右图),该菜单包括关于、刷新、帮助、语言、设置、工具、退出。当用鼠标单击该图标时,会出现一个菜单(见左图),通过该菜单可以查看及设置Apache、MySQL和PHP的各种环境,可以直接进入项目存放的文档根目录,可以访问phpMyAdmin系统、也可以启动、停止和重启所有服务。

在上图中,Apache的版本号为2.4.27,PHP的版本号为5.6.31,MySQL的版本号为5.7.19。本书使用PHP 7.1.9,可以通过单击上图中PHP 5.6.31,在出现的二级菜单中单击Version,选择7.1.9即可。

在初学阶段,Xdebug功能可以关闭。打开D:\wamp64\bin\apache\apache2.4.27\bin\路径下的php.ini文件,在文件末尾找到如下内容:

在第2行代码前添加英文分号,就可以关闭Xdebug功能。

PHP开发环境搭建

Ø wampServer目录介绍

WampServer安装在“D:\wamp64”,使用前需要了解其主要子目录,如表所示。


子目录名作用
www存放网页文档根目录,默认只有将网页上传到该目录下才能进行测试
bin存放Apache、MySQL、PHP 三个主要服务器组件的目录
logs存放网站日志文件,包含Apache、MySQL和PHP的日志等
apps存放了三个使用PHP开发的应用软件
alias存放Apache 设置的访问别名配置文件
tmp存放网站运行的临时文件


其次,还需掌握核心组件的位置,如表所示。


核心组件组件位置
Apache服务器安装位置D:\wamp64\bin\apache\apache2.4.27
主配置文件D:\wamp64\bin\apache\apache2.4.27\conf\httpd.conf
扩展配置文件D:\wamp64\bin\apache\apache2.4.27\conf\extra
网页存放位置D:\wamp64\www
MySQL数据库安装位置D:\wamp64\bin\mysql\mysql5.7.19
配置文件D:\wamp64\bin\mysql\mysql5.7.19\my.ini
数据文件D:\wamp64\bin\mysql\mysql5.7.19\data
PHP模块安装位置D:\wamp64\bin\php\php7.1.9
配置文件D:\wamp64\bin\php\php7.1.9\php.ini
数据库管理软件安装位置D:\wamp64\apps\phpmyadmin4.7.4
配置文件D:\wamp64\apps\phpmyadmin4.7.4\config.inc.php


Ø 测试开发环境

WampServer安装完成后,需要测试开发环境是否可以正常运行。打开浏览器,在地址栏中输入“http://localhost/”测试。如图显示图所示的界面,则表示WampServer安装成功。

Ø 第一个PHP程序

1.2.节中已经搭建好PHP开发环境,接下来就自己动手编写一个PHP程序,亲自感受一下PHP语言的基本形式。

在磁盘目录D:\wamp64\www\下创建一个目录section01,在section01目录下创建一个文本文件,重命名为1-1.php,用记事本打开,编写一段代码。

例中是编写好的PHP程序,下面分别对每条语句进行详细的讲解,如图所示。

打开浏览器,在地址栏中输入“http://localhost/1-1.php”,然后回车,则运行结果如图所示。

接下来演示将PHP语言嵌入到扩展名为.php的HTML文件中,如例所示。

运行结果如图所示。

在例中,用户可以根据需求在HTML文件中嵌入PHP代码。PHP代码是嵌入在HTML代码中使用,为了避免书写大量的HTML代码,本书有些例题代码只书写PHP代码部分。


Ø PHP程序开发流程

上面编写并运行了一个简单的PHP程序,从这个简单程序,可以总结出PHP程序的开发流程,具体如下所示。

1.编辑

PHP源代码是一系列的语句或命令,编辑它可以使用任意的文本编辑器,如Windows系统下的记事本、Linux系统下的vi、Sublime Text、Zend Studio、Eclipse for PHP、EasyEclipse等。编辑完的PHP源代码的文件扩展名必须是.php,这样才能由PHP引擎来处理。在大部分的服务器上,这是PHP的默认扩展名,也可以在Web服务器中指定其他扩展名。

2.上传

将编辑完成的PHP源代码上传到Web服务器上,本书中编辑好的PHP代码存放在目录“D:\wamp64\www\”下。

3.运行

如果已经将PHP文件成功上传到Web服务器,打开浏览器,在地址栏里输入Web服务器的URL访问这个文件,服务器将自动解析这些文件,并将解析的结果返回给请求的浏览器。

小结:PHP从入门到精通—PHP开发入门

通过本章的学习,大家能够对PHP语言及其优势有初步的认识,重点掌握PHP开发环境的搭建并编写一个简单程序,着重理解PHP程序开发流程。

相关文章:

PHP从入门到精通—PHP开发入门-PHP概述、PHP开发环境搭建、PHP开发环境搭建、第一个PHP程序、PHP开发流程

每开始学习一门语言,都要了解这门语言和进行开发环境的搭建。同样,学生开始PHP学习之前,首先要了解这门语言的历史、语言优势等内容以及了解开发环境的搭建。 PHP概述 认识PHP PHP最初是由Rasmus Lerdorf于1994年为了维护个人网页而编写的一…...

【LeetCode-中等】722. 删除注释

题目链接 722. 删除注释 标签 字符串 步骤 Step1. 先将source合并为一个字符串进行处理,中间补上’\n’,方便后续确定注释开始、结束位置。 string combined; for (auto str : source) {combined str "\n"; }Step2. 定义数组 toDel&am…...

rust里如何判断字符串是否相等呢?

在 Rust 中,有几种方法可以判断字符串是否相等。下面是其中几种常见的方法: 使用 运算符:可以直接使用 运算符比较两个字符串是否相等。例如: fn main() {let str1 "hello";let str2 "world";if str1 …...

python基本知识学习

一、输出语句 在控制台输出Hello,World! print("Hello,World!") 二、注释 单行注释:以#开头 # print("你好") 多行注释: 选中要注释的代码Ctrl/三单引号三双引号 # print("你好") # a1 # a2 print("Hello,World!&…...

vue3和typescript_组件

1 components下新建myComponent.vue 2 页面中引入组件,传入值,并且绑定事件函数。 3...

Qt+联想电脑管家

1.自定义按钮类 效果&#xff1a; (1)仅当未选中&#xff0c;未悬浮时 (2)其他三种情况&#xff0c;均如图 #ifndef BTN_H #define BTN_H#include <QPushButton> class btn : public QPushButton {Q_OBJECT public:btn(QWidget * parent nullptr);void set_normal_icon(…...

论文阅读-BotPercent: Estimating Twitter Bot Populations from Groups to Crowds

目录 摘要 引言 方法 数据集 BotPercent架构 实验结果 活跃用户中的Bot数量 Bot Population among Comment Sections Bot Participation in Content Moderation Votes Bot Population in Different Countries’ Politics 论文链接&#xff1a;https://arxiv.org/pdf/23…...

用于永磁同步电机驱动器的自适应SDRE非线性无传感器速度控制(MatlabSimulink实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建 qt

&#xfeff;Java版知识付费源码 Spring CloudSpring BootMybatisuniapp前后端分离实现知识付费平台 提供职业教育、企业培训、知识付费系统搭建服务。系统功能包含&#xff1a;录播课、直播课、题库、营销、公司组织架构、员工入职培训等。 提供私有化部署&#xff0c;免费售…...

删除注释(力扣)

删除注释 题目 给一个 C 程序&#xff0c;删除程序中的注释。这个程序source是一个数组&#xff0c;其中source[i]表示第 i 行源码。 这表示每行源码由 ‘\n’ 分隔。 在 C 中有两种注释风格&#xff0c;行内注释和块注释。 字符串// 表示行注释&#xff0c;表示//和其右侧…...

阿里云AK创建

要在阿里云上创建 Access Key&#xff08;AK&#xff09;&#xff0c;您需要按照以下步骤进行操作&#xff1a; 登录到阿里云控制台&#xff08;[https://www.aliyun.com/?utm_contentse_1014243503)&#xff09;。 点击右上方的主账号&#xff0c;点击“AccessKey管理”。 …...

OC与Swift的相互调用

OC调用Swift方法 1、在 Build Settings 搜索 Packaging &#xff0c;设置 Defines Module 为 YES 2、新建 LottieBridge.swift 文件&#xff0c;自动生成桥 ProductName-Bridging-Header.h 3、在 LottieBridge.swift 中&#xff0c;定义Swift类继承于OC类&#xff0c;声明 obj…...

某银行软件测试笔试题

&#xff08;时间90分钟&#xff0c;满分100分&#xff09; 考试要求&#xff1a;计算机相关专业试题 一、填空题&#xff08;每空1分&#xff0c;共10分&#xff09; 1. ______验证___是保证软件正确实现特定功能的一系列活动和过程。 2. 按开发阶段分&#xff0c;软件测试可…...

SpringMVC概述、SpringMVC的工作流程、创建SpringMVC的项目

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaweb 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 Spring MVC入门 一、Spring MVC概述二、入门案例2.1导入Sp…...

一文说清楚支付架构

作者&#xff1a;陈斌 支付的技术架构是为了保障能够顺利处理支付请求而设计的结构体系。从系统的角度看&#xff0c;它包括了计算机系统的软件、硬件、网络和数据等。从参与的主体角度来看&#xff0c;它涉及交易的付款方、收款方、支付机构、银行、卡组织和金融监管机构等。要…...

【Golang 接口自动化00】为什么要用Golang做自动化?

目录 为什么使用Golang做自动化 最终想实现的效果 怎么做&#xff1f; 写在后面 资料获取方法 为什么使用Golang做自动化 顺应公司的趋势学习了Golang之后&#xff0c;因为没有太多时间和项目来实践&#xff0c;怕止步于此、步Java缺少练习遗忘殆尽的后尘&#xff0c;决定…...

Android 架构模式如何选择

作者&#xff1a;vivo 互联网客户端团队-Xu Jie Android架构模式飞速演进&#xff0c;目前已经有MVC、MVP、MVVM、MVI。到底哪一个才是自己业务场景最需要的&#xff0c;不深入理解的话是无法进行选择的。这篇文章就针对这些架构模式逐一解读。重点会介绍Compose为什么要结合MV…...

深入了解 LoRaWAN® B 类设备

介绍 在 LoRaWAN 网络中,终端设备以三种模式之一运行:LoRaWAN A 类、B 类和 C 类。网络只能将消息(下行链路)发送到终端设备在两个短接收窗口之一期间处于 A 类模式,该接收窗口在设备向网络发送消息(上行链路)后立即打开。然而,这些上行链路不是预先安排的,并且可以由…...

KK集团再闯港交所:引领潮流零售市场,2023年一季度业绩增势显著

撰稿|行星 来源|贝多财经 7月31日&#xff0c;KK Group Company Holdings Limited&#xff08;下称“KK集团”&#xff09;在港交所更新招股书&#xff0c;补充了截至2023年3月31日的财务数据等信息&#xff0c;继续推进上市事宜&#xff0c;摩根士丹利和瑞信为其联席保荐人。…...

Vue中的组件渲染

在Vue中&#xff0c;组件的被渲染意味着将组件的内容转换为真实的DOM元素并添加到页面上。当Vue应用启动时&#xff0c;根组件会被渲染&#xff0c;并递归地渲染其子组件。 当组件被渲染时&#xff0c;Vue会将组件的模板解析成虚拟DOM&#xff08;Virtual DOM&#xff09;的形…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...

使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度

文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...