PHP了解01

1. 构架
1.1 C/S构架
1.1.1 定义
C/S是Client/Server这两个单词的首字母,指的是客户端/服务器架构的意思,通过客户端与服务器交互.
优点有:性能较高,将部分数据计算放在了客户端中,服务器只需要将这些数据接收和处理;可以实现更多的特效.
缺点有:对客户端的依懒性极高,电脑需要安装指定客户端,而且如果有更新,就需要及时更新不然无法使用.
1.1.2 常见软件
如各类大型网络游戏,QQ等.
1.2 B/S构架
1.2.1 定义
B/S构架是Browser/Server的这两个单词的首字母,指的是浏览器/服务器,是WEB兴起之后的一种架构,直接通过浏览器与服务器进行交互.
优点有:电脑无需安装客户端,用户直接使用浏览器来获得想要的服务;如果网站有更新,则用户只需刷新页面就能获得最新的信息.
缺点有:性能低,需要实时向服务器发送请求,需要占用更多的网速.
1.2.2 常人软件
一切可以通过浏览器看见的程序.
2. 浏览器与服务器的交互
浏览器在与服务器交互时会通过许多繁琐的过程,这里大概讲这个过程概括成以下几个步骤:
1 用户在浏览器的地址栏中输入想要的网站信息;
2 浏览器找到对应的服务器,并将这些要求发送给服务器;
3 服务器接收请求后在服务器内部找是否有满足要求的网站,如果找到将网站的html代码、css代码、js代码发送给浏览器,如果没有找到满足要求的网站则会返回报错404无指定内容;
4 浏览器将服务器发送过来的一系列代码接收,并再浏览器界面将代码渲染出来,呈现给用户。
3. 动态页面定义
以往我们创建的页面都只能算是静态页面,因为这个页面创建出来后就不会改变页面中的布局和信息,而真正的页面是会根据不同时间、不同用户、不同浏览器动态改变页面中的布局和信息的。
这里我们就需要通过其他服务器编程语言来实现动态页面的创建。
4. PHP语法介绍
PHP是一款尤其适用于web开发的脚本语言,它的语法和我们以前使用的JS有许多类似的地方,当然也有不同且需要注意的地方。
4.1 PHP标签
<?php    代码写在这里 ?>
4.2 PHP语言中申明变量
直接使用$+变量名即可,且可以申明各类型的数据。需要注意是它的申明方式与JS的申明变量不同,切勿使用JS的方法在PHP中使用。
4.3 PHP中常用的逻辑语句
for($i=0;$i<10;$i++){}
while($num<10){}
等逻辑语句都与JS语言中的格式类似,但是需要注意变量的申明方式。
4.4 复杂数据类型:数组
在PHP中申明一个数组的格式与JS中不同,是通过$arr=array();方式来申明一个新数组,这里的array()等同于JS中的方法。
在PHP中数组有两种类型:
4.4.1 普通数据
$arr=array()括号中为简单数据类型,如数值、字符串等。
可以通过$arr[index](index是数组中数据的索引,索引从0开始),的方式来获取数组中的数据。
4.4.2 关系型数组
$arr=array()括号中为键值对类型的数据,其中数据格式必须为‘name‘=>‘value‘的形式。
并且通过$arr[‘key‘]的方式来获取数组中对应‘key‘的值。
4.5 输出语法
通过关键字echo来将它后面的内容输出至浏览器页面中。
4.6 PHP书写时的注意
4.6.1 所有PHP代码必须写在<?php    代码写在这里 ?>标签中;
4.6.2 PHP文件的后缀为.php;
4.6.3 PHP文件名和文件路径中不能存在任何中文字或中文字符;
4.6.4 PHP文件需要通过浏览器向服务器发送请求后才能打开,不能直接通过开发软件打开或直接点击打开;
4.6.5 PHP代码中拼接字符串是使用.来拼接。
5. 模拟浏览器与服务器的交互
我们通过页面中的表单元素,在提交我们输入的信息后,通过PHP获取这些数据,进行不同类型的交互。
浏览器通过PHP 语言与服务器进行交互需要完成几个必须的设置:
1 在form标签中设置action属性,该属性设置的是提交表单的目标路径,指向的是对应的PHP文件。
2 在form标签中设置method属性,该属性设置的是数据传输的加密方式,它有两个属性:get和post,默认为get,这两者的区别再后面具体介绍。
3 form表单中需要读取数据的标签必须设置name属性,该属性设置的是PHP获取数据的目标。
4 必须有提交按钮。
5.1 两种传输加密方式的区别
当method设置为默认值get时,浏览器会在提交信息后默认将我们输入的所有信息通过‘name’=‘value’的形式在浏览器地址栏中出现,这时的信息安全度较低。
而当method设置为post时,浏览器会将用户提交的信息不在地址栏中显示,安全度较get方式略高。
5.2 获取表单提交的数据
5.2.1 form通过get方式提交的数据
$_GET[‘key‘],key为需要获取的对应表单标签的name属性值。
5.2.2 form通过post方式提交的数据
$_POST[‘key‘],key为需要获取的对应表单标签的name属性值。
5.3 存储或读取数据
5.3.1 存储数据
将数据写入指定的文件中,又可以视为将数据保存下来:
file_put_contents(指定的文件路径,需要写入的数据,数据的添加到文件中的方式),可以实现将获取的数据实时存入指定文件,并且可以通过添加方式来决定是否将前面的数据覆盖。
5.3.2 读取数据
将数据从指定的文件中读取出来,又可视为读取数据:
file_get_conents(路径),如果无需对文件中的数据进行筛选的话,只需要传入指定文件的路径即可,如果有其他需要,可以查看PHP属性介绍,传入对应的参数。
6. PHP与HTML的关系
如果我们在PHP文件中写入完整的html代码时,它还是会在浏览器中渲染出这些html代码的效果,也就是说如果我们需要将获得的数据进行处理的话。可以直接在一个具体的html页面中,将数据填充到指定的位置中,与其他html代码一起返回给用户。

时间: 2024-10-03 04:35:52

PHP了解01的相关文章

我喜欢减肥我们来减肥吧

http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313278016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313282016/2015.01.28.html http://www.ebay.com/cln/honus.jyw4mvptb/cars/158313289016/2015.01.28.html http://www.ebay.com/cln/usli

百度回家看沙发沙发是减肥了卡斯加积分卡拉是减肥

http://www.ebay.com/cln/hpryu-caw8ke/cars/158056866019/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445650015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/158445674015/2015.01.31 http://www.ebay.com/cln/xub.50x2l7cj/cars/1584456790

巢哑偕倥乇椭煞谙暗逞帕俸

IEEE Spectrum 杂志发布了一年一度的编程语言排行榜,这也是他们发布的第四届编程语言 Top 榜. 据介绍,IEEE Spectrum 的排序是来自 10 个重要线上数据源的综合,例如 Stack Overflow.Twitter.Reddit.IEEE Xplore.GitHub.CareerBuilder 等,对 48 种语言进行排行. 与其他排行榜不同的是,IEEE Spectrum 可以让读者自己选择参数组合时的权重,得到不同的排序结果.考虑到典型的 Spectrum 读者需求

我国第三代移动通信研究开发进展-尤肖虎200106

众所周知,数据科学是这几年才火起来的概念,而应运而生的数据科学家(data scientist)明显缺乏清晰的录取标准和工作内容.此次课程以<星际争霸II>回放文件分析为例,集中在IBM Cloud相关数据分析服务的应用.面对星际游戏爱好者希望提升技能的要求,我们使用IBM Data Science Experience中的jJupyter Notebooks来实现数据的可视化以及对数据进行深度分析,并最终存储到IBM Cloudant中.这是个介绍+动手实践的教程,参会者不仅将和讲师一起在线

pl/sql学习1——标量变量psahnh6S

为类型.不能用于表列的数据类型.范围为的子类型.自然数.为的子类型.具有约束为单精度浮点数.为变量赋值时.后面要加为双精度浮点数.为变量赋值时.后面要加.为数字总位数.为小数位数是的子类型.最大精度位是的子类型.最大精度位单精度浮点型是的子类型.最大精度位双精度浮点型定义精度为位的实数..定义为位的整数.变长字符串.最长测试变量数据!.定长字符串.最长测试变长二进制字符串物理存储的为类型...固定长度.个字节使用定义数据类型那个最小值:最大值:最小值:最大值:最小值:最大值:最小值:最大值:最小

Spring知识点回顾(01)

Spring知识点回顾(01) 一.依赖注入 1.声明Bean的注解 @Component @Service @Repository @Controller 2.注入Bean的注解 @Autowired @Inject @Resource 二.加载Bean 1.xml方式 - applicationcontext.xml : Beans, Bean, Component-Scan 2.注解方式 - @Configuration,@ComponentScan,@Bean 用@Configurati

UVA 562 Dividing coins --01背包的变形

01背包的变形. 先算出硬币面值的总和,然后此题变成求背包容量为V=sum/2时,能装的最多的硬币,然后将剩余的面值和它相减取一个绝对值就是最小的差值. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; #define N 50007 int c[102],d

17-又见01背包

/*                                        又见01背包时间限制:1000 ms  |  内存限制:65535 KB难度:3 描述        有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W     的物品,求所有挑选方案中物品价值总和的最大值.    1 <= n <=100    1 <= wi <= 10^7    1 <= vi <= 100    1 <= W <= 10^

洛谷——P1141 01迷宫

https://www.luogu.org/problem/show?pid=1141 题目描述 有一个仅由数字0与1组成的n×n格迷宫.若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上. 你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身). 输入输出格式 输入格式: 输入的第1行为两个正整数n,m. 下面n行,每行n个字符,字符只可能是0或者1,字符之间没有空格. 接下来m行,每行2个用空格分隔的正整

HDU - 2602 Bone Collector(01背包讲解)

题意:01背包:有N件物品和一个容量为V的背包.每种物品均只有一件.第i件物品的费用是volume[i],价值是value[i],求解将哪些物品装入背包可使价值总和最大. 分析: 1.构造二维数组:dp[i][j]---前i件物品放入一个容量为j的背包可以获得的最大价值. dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - volume[i]] + value[i]);---(a) (1)dp[i - 1][j]---不放第i件物品,因此前i件物品放入一个容量为