PHP简介

wampserver安装及使用

1. wampserver安装

  • a:安装 Web 服务器Apache
  • p:安装 PHP解析器
  • m:安装MySQL数据库

对于初学者建议使用集成的服务器组件(如:WampServer),它已经包含了 PHP、Apache、Mysql 等服务,免去了开发人员将时间花费在繁琐的配置环境过程。

WampServer下载地址:http://www.wampserver.com/

若是缺乏某个dll,直接安装vc_redist.x64_2015.exe

【计算机-管理-服务和应用程序-服务-wampapache-wampmysql(开启服务前,先停止svn、mysql、iis)】

测试:

当wampserver图片变成绿色:

  1. 网址中输入localhost或127.0.0.1(本机ip),默认打开C:\wamp64\www路径下的index.php
  2. 同样可以localhost/*** 访问默认路径下(C:\wamp64\www)的任意文件

2.创建虚拟目录

  • 左键小图标—->apache—->alias directories—>add an alias
  • 创建虚拟目录名字,例如aaa。enter后
  • 创建虚拟目录对应的url,即需要开启web服务的文件夹路径(路径不可有中文、空格)
  • 以上步骤完毕,访问虚拟目录只需在浏览器输入http://localhost/aaa,可访问目录下任意文件。

3.创建端口

  • 左键小图标—->apache—->httpd-vhost.conf

  • 复制如下代码,往下写。(//只是注释,记得删掉)

  • 1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    listen 1704    //端口号
    <VirtualHost *:1704> //端口号
    ServerName localhost
    DocumentRoot D:\laoxie\01Basic //端口对应url(不可有中文路径、空格)
    <Directory "D:\laoxie\01Basic"> //端口对应url
    Options +Indexes +Includes +FollowSymLinks +MultiViews
    AllowOverride All
    Require all granted
    </Directory>
    </VirtualHost>

    以上步骤完毕,访问端口下目录只需在浏览器输入http://localhost:1704,可访问目录下任意文件。

4.开启局域网服务器

1.查看本机ip地址:common+r进入cmd,输入ipconfig,查看ipv4。

2.在vhost.conf给端口对应的url添加一句代码
1
2
#Require local //#代表注释
Require all granted //允许其他主机访问

PHP

1.概念

PHP是一种通用开源服务端脚本语言,将程序嵌入到HTML文档中去执行,结果以纯 HTML 形式返回给浏览器。
PHP: Hypertext Preprocessor “超文本预处理器”,1994年由Rasmus Lerdorf创建,刚刚开始仅仅是为了要维护他本人个人网页而制作的一个简单程序(Perl语言编写),原名Personal Home Page(PHP由此得名),后用C语言重新编写,改名Hypertext Preprocessor

PHP能做什么:
  • 生成动态页面内容
  • 创建、打开、读取、写入文件
  • 收集ajax数据
  • 发送和接收cookie
  • 添加、删除、修改您的数据库中的数据
  • 限制用户访问您的网站上的一些页面
  • 加密数据

2.基本语法

  • 默认文件扩展名是 “.php”。
  • 通常包含 HTML 标签和一些 PHP 脚本代码。
分界标示符
1
2
3
4
5
<?php //开始 

//...php代码

?> //结束
注释

与js一样,分单行和多行注释

  • 单行注释://
  • 多行注释:/**/
输出语句
  • echo

    可以输出一个或多个字符串(字符串可以包含HTML标签),速度较快,一般用于向前端返回数据

    1
    2
    3
    4
    5
    6
    <?php
    //输出一个字符
    echo "Hello world!<br>";
    //输出多个字符
    echo "This", " string", " was", " made", " with multiple parameters.";
    ?>
    1
    2
    3
    4
    5
    json_encode(array,JSON_UNESCAPED_UNICODE);  把数组转成字符串
    php5.4+ 使用JSON_UNESCAPED_UNICODE防止中文转义
    json_decode(json,assoc);把字符串转成数组/对象
    json:待解码的 json string 格式的字符串
    assoc:默认false,返回object, 当该参数为 true 时,将返回array
  • print_r()
    打印关于变量的信息,适用于数组、对象的打印,一般用于测试

  • var_dump()
    判断一个变量的类型与长度,并输出变量的数据类型和数值,一般用于测试

3.变量

命名规则
  • 以 $ 符号开始,后面跟着变量的名称($称为标识符,不属于变量组成部分)
  • 只能包含字母、数字字符以及下划线,不能以数字开头(不能包含空格)
  • 区分大小写
1
2
3
4
5
//PHP 没有声明变量的命令,也没有声明提前的概念。
//变量在第一次赋值时被创建:
<?php
$txt="Hello world!";
?>
拼接字符串及变量
1
2
3
4
5
6
<?php
$myname = "lemon";
echo 'My name is' . $myname; //1.通过并置运算符.拼接字符串及变量
//或者
echo "My name is $myname"; //2.双引号内可以直接输出变量,无需拼接
?>
函数中访问全局变量!!!
  • 全局变量:在函数外部定义的变量,可以在任意位置访问(需要手动定义为全局变量)
  • 局部变量:函数内部声明的变量,仅能在函数内部访问

(1) $GLOBALS

1
2
3
4
5
6
7
8
9
10
11
12
<?php
$x='global x';
function myTest(){
//echo $x;//报错 Undefined variable:未声明定义的变量
echo $GLOBALS['x']; //1.获取全部变量正确写法:$GLOBALS[变量名],其中变量名不带$。

//2.同时,可以在函数中创建全局变量
$GLOBALS['y'] = $GLOBALS['x'] + $GLOBALS['y'];
}
myTest();
echo $y;
?>

(2)global 关键字

1
2
3
4
5
6
7
8
9
<?php
$x=5;
function myTest(){
global $x;
$y=$x;
}
myTest();
echo $y;
?>
超级全局变量
  • $GLOBALS
    是PHP的一个包含所有全局变量的数组,可以在任意位置使用
  • $_SERVER
    是一个包含了头信息(header)、路径(path)等信息的数组
  • $_POST / $_GET
    被广泛应用于收集表单数据,常用于ajax请求等操作
  • $_COOKIE
    用于收集前端发送过来的cookie数据
  • $_REQUEST
    变量包含了 $_GET、$_POST 和 $_COOKIE 的内容
  • $_SESSION
    服务器版cookie
  • $_FILES
常量
  • 规范
    • 命名规则与变量一致,但常量名不需要加 $ 修饰符。
    • 常量值被定义后,在脚本的其他任何地方都不能被改变。
    • 默认是全局作用域,可以在整个运行的脚本的任何地方使用。
    • 常量名建议全部大写
  • 格式: define(name常量名称,value常量值)
1
define("EN_NAME", "laoxie");   // const MY_NAME = "lemon";

4.运算符及语句(等同于js)

算术运算符、赋值运算符、递增/递减运算符、比较运算符(等于大于...)、逻辑运算符(与或非)、三元运算符
条件语句、循环语句

5.数据类型

$$
String(字符串)
Integer(整型)
Float(浮点型)
Boolean(布尔型)
Array(数组)
Object(对象)
NULL(空值)
$$

String
  • strlen() 获取字符串长度,得到的字符的字节数

  • mb_strlen() 获取字符串长度,

  • strpos() 查找某个字符在字符串中的索引,如果未找到匹配,则返回 false

    1
    strpos("Hello world!","world");//=>6
Array

数组是一个能在单个变量中存储多个值的特殊变量。

(1)创建数组:array()
1
2
3
4
5
//1.数值数组,等同于js的数组
$cars=array("Volvo","BMW","Toyota");
//2.关联数组,等同于js的对象
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
//3.多维数组,包含一个或多个数组的数组
(2)数组常用方法
  • count() 获取数组长度
  • in_array() 判断某个值是否存在数组中
  • array_slice() 从数组中取出一段
  • array_rand() 随机获取数组的索引值
练习案例:在php文件里生成动态商品页面
(3)遍历数组
  • for 一般用于遍历数值数组

  • foreach() 一般用于遍历关联数组,或者对象

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    //遍历数值数组:for循环
    $cars=array("Volvo","BMW","Toyota");
    $arrlength=count($cars);
    for($x=0;$x<$arrlength;$x++){
    echo $cars[$x] . "<br>";
    }
    //关联数组:
    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
    //获取单个值
    echo $age['peter'];
    //遍历关联数组:foreach..as
    foreach($age as $key=>$value){
    echo $key .":". $value;
    echo "<br>";
    }
    //多维数组:
    foreach($age as $item){
    //item代表数组里面的关联数组
    }
    ?>
数组排序
  • sort() 对数组进行升序排列
  • rsort() 对数组进行降序排列
  • asort() 根据关联数组的值,对数组进行升序排列
  • ksort() 根据关联数组的键,对数组进行升序排列
  • arsort() 根据关联数组的值,对数组进行降序排列
  • krsort() 根据关联数组的键,对数组进行降序排列