乐趣区

关于php:1-PHP


typora-copy-images-to: images

1.1 今日指标

  1. 把握互联网的工作原理
  2. 把握域名、DNS 和 IP 地址之间的关系
  3. 了解 hosts 文件在互联网拜访过程中的作用
  4. 了解动态网站和动静网站的区别
  5. 了解动静网站的服务器组成
  6. 理解 PHP 的工作过程
  7. 把握 PHP 变量的应用形式
  8. 了解可变变量的概念
  9. 把握可变变量的拜访模式
  10. 了解变量的值传递和援用传递的区别

1.2 PHP 简介

1.2.1 概述

PHP 是 Hypertext Preprocessor 的缩写,(超文本预处理器)是一种在服务器端运行的开源的脚本语言。

LAMP 组合(Linux,Apache,MySQL,PHP),这四个产品都是公开源代码的产品

php 是一门语言,用来做业务逻辑
apache 为 PHP 提供了运行环境
linux 为 Apache 的运行提供了平台
mysql 数据库用来存储数据

多学一招:什么是 wamp 组合

windows+apche+mysql+php

1.2.2 五个基本概念

1、动态页面和动静页面

动态页面:服务器不执行的页面
动静页面:服务器执行的页面

问题:动静网站中是否能够寄存动态页面

答:能够

2、客户端和服务器端

浏览者这段是客户端
服务器端:给浏览者提供服务

3、端口和端口号 端口号的范畴:0-65535

4、BS 架构和 CS 架构

BS:通过浏览器去拜访服务器

b:browser(浏览器)s:sever(服务器)
长处:1、只有有浏览器就能够拜访
2、开发低
毛病:2、开发的代码都放在服务器上    胖服务器 - 瘦客户端

所有的 web 都是 BS 架构的

CS:通过客户端软件去拜访服务器

c:client(客户端)s:server(服务器)
长处:1、能够开发客户端和服务器端,这时候就能够实现负载的平衡
毛病:1、必须要装置一个软件能力去拜访
2、开发成本高

例如:QQ、炒股软件

5、前台和后盾

前台:浏览器看到的界面
后盾:管理员看到的界面

1.2.3 PHP 的长处

  1. 跨平台,既能在 windows 上运行,也能在 linux 上运行
  2. 源码凋谢:不会波及到版权问题
  3. 语法简略:PHP 入门简略
  4. 运行在服务器端,只有在服务器部署环境就能够了。

1.3 Web 介绍

1.3.1 web 时代的变迁

从互联网开始崛起到当初,经验了从 web1.0、2.0 到 web3.0 的过程

Web1.0(信息共享)的次要特点在于用户单纯的获取信息
Web2.0(信息共建)更重视用户的交互作用,用户既是网站内容的浏览者,也是网站内容的制造者。Web3.0(信息传承)通过第三方信息平台对多家网站的信息进行整合,用户在互联网上领有本人的数据,并能在不同网站上应用

举例:

Web1.0:来到一个餐馆,老板给你上了一盘番茄炒蛋;Web2.0:来到一个餐馆,你跟老板被动点了一份番茄炒蛋;Web3.0:来到一个餐馆,老板见到你就问,老规矩,还要番茄炒蛋?

1.3.2 Web 服务原理

动态网站原理(浏览器 - 服务器)

动静网站原理(浏览器 - 服务器 - 数据库)

智能网站原理(浏览器 - 服务器【剖析举荐】- 数据库)

1.4 搭建 Web 服务器

1.4.1 装置 phpstudy

间接解压即可

1.4.2 目录构造

启动服务

1.4.3 拜访服务器

在 www 目录下创立 demo.php 页面

<?php
   phpinfo();

拜访服务器

拜访规定:http:// 服务器 ip 地址 /php 页面
比方:http://localhost/demo.php
http://127.0.0.1/demo.php

1.4.4 罕用的命令

补充 DOS 命令

切换盘符    盘符 + 冒号
进入目录    cd 目录地址

Apache 的命令

httpd -v   查看 apache 版本号   version
httpd -t   检测运行环境  test

PHP 的命令

php -v  PHP 版本号

1.4.5 互联网通信原理

实质一台电脑拜访另外一台电脑资源、寻址过程(IP 地址、端口、域名、DNS)

在互联网上,IP 地址是用来辨别每台计算机的标识,然而 IP 记忆不敌对,咱们将 IP 地址取一个名字,一个 IP 对应一个名字,这个名字就称为域名。

拜访过程:

步骤:

1、客户端输出域名(网址),在最近的机房做 DNS 解析(Domain Name Server),DNS 解析就是将域名转化成 IP 地址

2、通过 IP 地址拜访服务器

1.4.6 DNS 解析

指标:ip 地址拜访服务器不不便,通过域名来拜访。

hosts 文件

测试

小结:

hosts 文件用来做 DNS 解析

1.5 服务器配置

1.5.1 虚拟目录配置

1、更改虚拟目录

要更改虚拟目录的地位,须要到 apache 的配置文件中更改(conf/httpd.conf)

在 phpstudy 中,httpd.conf 和 vhost.conf 都有配置虚拟目录的指令,并且两个配置文件中都有配置虚拟目录的指令,为了测试,咱们正文掉 vhost.conf 的引入

更改虚拟目录

揭示:我的项目上线当前,不能够显示目录构造

权限的练习

例题一:

Order allow,deny
Allow from all
# 容许所有申请拜访

例题二:

Order allow,deny
Allow from all
Deny from all
# 回绝所有申请拜访

练习三:

Order allow,deny
Deny from all
Allow from all
#  回绝所有申请拜访

练习四:

<Directory "C:/PHP/Apache/htdocs">
   Order deny, allow
   Allow from 192.168.101.50
   Deny from 192.168
</Directory>
# 回绝 192.168 结尾,但除去(192.168.101.50)的 IP 的拜访

练习五:

<Directory "C:/PHP/Apache/htdocs">
    Order deny, allow
    Allow from 192.168.101.50
   Deny from all
</Directory>
# 只容许 192.168.101.50 拜访

练习六:

<Directory "C:/PHP/Apache/htdocs">
   Order allow,deny
   Allow from 192.168
   Deny from 192.168.101.50
</Directory>
# 只容许 192.168 结尾的,但要去除 192.168.101.50 的 IP 拜访

2、更改默认首页

在 httpd.conf 配置文件中

默认首页的查找程序,从前往后。

3、更改监听端口

在 httpd.conf 配置文件中设置

通过 Listen 指令设置监听的端口

能够设置多个监听端口

拜访:

http:// 域名: 端口号 /demo.php

补充:查看端口的占用状况

在命令行下应用 netstat -ano 查看

在后果中查找字符串

1.5.3 虚拟主机配置

需要:

输出 www.baidu.com    关上 web1 的网站
输出 www.sina.com 关上 web2 的网站

配置过程:

要配置虚拟主机,须要在 httpd.conf 中引入虚拟主机的培训文件(vhosts.conf)

vhosts.conf 配置如下

<VirtualHost _default_:80>
  DocumentRoot "C:\web1"       #指定虚拟目录门路
  ServerName www.baidu.com     # 虚拟目录绑定的域名
  DirectoryIndex aa.php        # 默认首页
  <Directory "C:\web1">
    Options -Indexes -FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
  </Directory>
</VirtualHost>


<VirtualHost _default_:80>
DocumentRoot "C:\web2"
 ServerName www.sina.com
 DirectoryIndex bb.php
  <Directory "C:\web2">
    Options -Indexes -FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
  </Directory>
</VirtualHost>

在 host 文件中做 dns 解析

拜访后果

补充:站点、虚拟目录、虚拟主机的区别

站点:站点就是一个文件夹,用来保留与网站无关的所有素材

虚拟目录:站点 + 权限

虚拟主机:虚拟目录 + 域名

1.6 PHP 语法入门

1.6.1 PHP 是编译型语言

编译语言和解释语言的区别在于是否保留最终的可执行程序。

PHP 执行过程

1.6.2 PHP 定界符

因为 PHP 是脚本语言,所以须要定界符

1、规范格调(举荐应用)

<?php

?>

例题

<?php
    echo 'i am a boy!';
?>

揭示,如果整个页面都是 PHP 代码,PHP 结束符是能够省略的(举荐)

<?php
    echo 'i am a boy!';

2、短标记格调(默认状况下不反对,须要在 php 配置文件中开启反对段标记)

<?
?>

例题:

<?
    echo '锄禾日当午';
?>

小结:

httpd.conf 是 apache 的配置文件

php.ini 是 php 的配置文件

1.6.3 正文

单行正文:// 和#

多行正文:/ /

1.6.4 PHP 输入语句

echo: 输入
print: 输入,输入胜利返回 1
print_r():输入数组
var_dump(): 输入数据的详细信息,带有数据类型和数据长度

<?php
    var_dump('abc');    //string(3) "abc" 
?>

1.7 变量

变量的实质就是内存中的一段空间

1.7.1 变量的命名规定

  1. 变量必须以 $ 结尾,$ 符不是变量的一部分,仅示意前面的标识符是变量名。
  2. 除了 $ 以外,以字母、下划线结尾,前面跟着数字、字母、下划线
  3. 变量名辨别大小写,$aa 和 $Aa 是两个空间

下列变量是否非法

$a        非法
$a1        非法
$1a        不非法
$_1a    非法

留神:PHP 语句必须以分号结尾

<?php
    $a=10;
    $name='Tom';
?>

1.7.2 可变变量

变量名能够变,将变量名存储在另外一个变量中

例题

<?php
$a=10;
$b='a';
echo $$b;    //10

例题

<?php
    $name1='tom';
    $name2='berry';
    if(rand(1,10)%2){$name='name1';    // 将变量名存储在 $name 中}else{$name='name2';}
    echo $$name;   

小结:

1、rand(1,10):获取 1 -10 的随机整数

1.7.3 变量传递

变量的传递有值传递和地址传递(援用传递)

<?php
// 值传递
$num1=10;    // 将 10 付给 $num1
$num2=$num1;    // 将 $num1 的值付给 $num2
$num2=20;        // 更改 $num2
echo $num1;        //10

// 地址传递
$num1=10;        // 将 10 付给 $num1
$num2=&$num1;    // 将 $num1 的地址付给 $num2
$num2=20;        // 更改 $num2
echo $num1;        //20

小结:

1、参数的传递有两种,值传递和地址传递

2、& 示意获取变量的地址

3、值传递中,一个变量变了,另一个变量没有影响,因为是两个空间

4、地址传递中,一个变量变了,另一个也变了,因为两个变量指向同一个空间

1.7.4 销毁变量

用 unset()来销毁变量,销毁的是变量名,变量值由 PHP 垃圾回收机制销毁

<?php
$num1=10;
$num2=&$num1;
unset($num1);    // 销毁的是变量名
echo $num2;        //10

没有变量援用的值是垃圾。

1.8 作业

phpstudy 装置结束后,有一个 phpmyadmin 的治理数据库软件,默认状况下,放在虚拟目录下,这样不合理,请重新配置虚拟主机拜访 phpmyadmin

输出 phpmyadmin.com 关上 phpmyadmin 管理软件

退出移动版