服务端web开发
在讲解什么是服务端开发之前,让我们先思考几个问题
- 网站访问:
当我们做好了
.html
的网站,如何让别人(朋友,用户)可以访问到呢?- 使用
U盘拷贝
,QQ发送文件
等直接将文件共享的方式?---不灵活
- 将网站放在服务器上,让用户通过网址访问?---
绝大多数网站的做法
- 使用
-
网站内容更新:
如果用户每次访问我们的网站看到的内容都是一样的,在最初的新鲜劲过去以后估计就再也不想访问我们的网站了
o(╯□╰)o
,那么如何去更新网站的内容呢?- 当有内容,图片,或者界面需要更新是,直接修改
.html
文件?---费时费力
- 通过某种手段,当有新的消息,
自动
的完成网站的更新?---动态网站
- 当有内容,图片,或者界面需要更新是,直接修改
-
如何实现网站动态化
网站的本质,其实就是一堆按照某种规则排列的字符串而已,如果我们可以通过某种方式,让电脑
动态
生成这些字符串,是不是就实现了网站的动态化?- 想要让电脑干事情,可以通过
编程语言
来实现. 编程语言
的编写位置为服务器
,因为用户是问服务器要网站的- 在
服务器
,通过编程语言
让用户访问的网站动态化
叫做:服务端web开发
- 想要让电脑干事情,可以通过
-
可选开发方式: 虽然基本上所有可以返回
字符串
的编程语言都能够实现这个功能,目前市场主流开发语言有:Java
,php
,ASP.Net
,Ruby
,Python
,Erlang
等.虽然可以选择的开发语言有很多种,但是本质都是一样的:当用户访问网站了,根据`某些逻辑`,生成对应的`HTML,CSS,JS`代码给用户
PHP简介
PHP在众多的编程语言中,是比较容易上手,结合我们搭建的
WAMP
环境就能够开始学习了
- PHP代码执行方式:
服务端web编程
写好的代码,需要通过浏览器访问服务器
,在服务器端
执行,然后返回给用户结果,如果直接使用浏览器打开,就会解析为文本
PHP常见语法
注,这里只列举常用的
PHP
语法,更为详细的语法教程可以查阅w3cschool_PHP教程
-
文件定义,注释: PHP文件以
.php
结尾,代码的编写位置在<?php 写在这里?>
.注释的写法跟js
一致<?php //这是单行注释 /* 这是多行注释 */ ?>
-
PHP变量规则:
- 变量以
$
符号开头,其后是变量的名称 - 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(
A-z
、0-9
以及_
) - 变量名称对大小写敏感
- 变量以
// 变量以`$`符号开头,其后是变量的名称 // 变量名称必须以字母或下划线开头 $a; $b; $a1; $_abc; // 变量名称不能以数字开头 // 变量名称只能包含字母数字字符和下划线(`A-z`、`0-9` 以及` _`) // 下面这些是错误的变量定义 $1; $哈哈; $^&*; //变量名称对大小写敏感(`$y` 与`$Y` 是两个不同的变量) // 下面定义的两个变量是不同的,大写,小写x $x; $X;
- 数据类型
PHP
支持的数据类型包括:字符串,整数,浮点数,布尔,数组,对象,NULLL(注:由于对象中可以使用函数,故对象的语法在下文中会提及)- 定义字符串时需要注意:
- 单引号:
``
内部的内容只是作为字符串 - 双引号:
""
如果内部是PHP
的变量,那么会将该变量的值解析
- 单引号:
- 字符串连接:不同于
javascript
,PHP
中使用.
进行连接
- 定义字符串时需要注意:
// 字符串 $str = ‘123‘; // 字符串连接 $str2 = ‘123‘.‘哈哈哈‘; // 字符串 // 整数 $numA = 1; //正数 $numB = -2;//负数 // 浮点数 $x = 1.1; // 布尔 $a = true; $b = false; // 数组 $arr = array(‘123‘,123)
-
运算符
PHP
中的运算符跟JavaScript
中的基本一致,用法也基本一致- 算数运算符:
+
,-
,/
,*
,%
- 赋值运算符:
x = y
,x += y
,x -= y
注:这里列举的并不完全,更为详细的PHP
运算符教程请查阅w3cschool_PHP运算符
- 算数运算符:
<?php $x=10; $y=6; echo ($x + $y); // 输出 16 echo ($x - $y); // 输出 4 echo ($x * $y); // 输出 60 echo ($x / $y); // 输出 1.6666666666667 echo ($x % $y); // 输出 4 ?>
- 函数:
PHP
虽然系统内建了一些函数,但是这不影响我们定义自己的. 函数的作用就是在代码中可以重复使用的语法块
,页面加载的时候不会执行,只有在被调用
的时候才会执行
// 基础语法 function functionName() { 这里写代码 } // 无参数 无返回值的函数 function sayhi(){ echo "Hello World"; } // 有参数 无返回值的函数 function sayName($name){ echo $name.‘你好哦‘; } // 调用 sayName(‘小狐狸‘); // 有参数,参数有默认值的函数 function sayFood($food=‘西兰花‘){ echo $food.‘好好吃‘; } // 调用 sayFood(‘西葫芦‘);// 如果传入参数,就使用传入的参数 sayFood();// 如果不传入参数,直接使用默认值 // 有参数,有返回值的函数 function sum($a,$b){ return $a+$b } sum(1,2);// 返回值为1+2 = 3
- 对象 PHP中允许使用对象这种,自定义数据类型. 使用时必须先声明,实例化之后才能够使用
// 定义最基础的类 class Fox{ public $name = ‘itcast‘; public $age = 10; } $fox = new $fox; // 对象属性取值 $name = $fox->name; // 对象属性赋值 $fox->name = ‘小狐狸‘; // 带构造函数的对象 class fox{ // 私有属性,外部无法访问 var $name = ‘小狐狸‘; // 定义方法 用来获取属性 function Name(){ return $this->name; } // 构造函数,可以传入参数 function fox($name){ $this->name = $name } } // 定义了构造函数 需要使用构造函数初始化对象 $fox = new fox(‘小狐狸‘); // 调用对象方法,获取对象名 $foxName = $fox->Name();
- 内容输出:
echo
:PHP
语句直接使用即可,输出字符串print_r()
:函数
输出复杂数据类型,比如数组,对象var_dump()
:函数
输出详细信息,如对象、数组
$arr =array(1,2,‘123‘); echo‘123‘; // 结果为 123 print_r($arr); // 结果为 Array ( [0] => 1 [1] => 2 [2] => 123 ) var_dump($arr); /* 结果为 array 0 => int 1 1 => int 2 2 => string ‘123‘ (length=3) */
- 循环语句: 这里只列举了
foreach
,for
循环
// for 循环 for ($x=0; $x<=10; $x++) { echo "数字是:$x <br>"; } // foreach 循环 $colors = array("red","green","blue","yellow"); // 参数1为循环的对象,参数2会将对象的值挨个取出,直到最后 // 如果循环的是对象的话,输出的是对象属性的值 foreach ($colors as $value) { echo "$value <br>"; } 输出结果为 /* red green blue yellow */
header()
函数 用来向客户端(浏览器)发送报头,如果出现中文无法显示,可以尝试在PHP
代码顶部添加 如下代码
header("content-type:text/html; charset=utf-8")