搭建HTTP服务器
phpStudy介绍
phpStudy是一个PHP调试环境的程序集成包。 该程序包集成最新的Apache+PHP+MySQL,安装非常的简单
phpStudy的安装
安装phpStudy,解压双击安装(非中文路径),其它默认安装。
推荐就安装在默认的目录下,一定不能有中文,否则肯定启动不起来。
phpStudy的错误解决
如果phpStudy启动发生错误,参数下列几点。
-
一是防火墙拦截,
-
二是80端口已经被别的程序占用,如IIS,迅雷等;
-
三是没有安装VC9运行库,php和apache都是VC9编译。
解决以上三个问题,99%能一次性安装成功
为了减少出错安装路径不得有汉字,如有防火墙开启,会提示是否信任httpd、mysqld运行,请选择全部允许。
PHP基础
PHP简介
-
开源(open source)软件,跨平台,常用操作系统稳定执行。Windows / Linux。做WEB开发的经典组合 WAMP,LAMP,LNMP基本都是开源软件。
-
入门简单,用户只需要关注应用,开发成本低。
-
支持的大多数主流数据库。MySQL,oracle,Redis等
文件以.php后缀结尾,所有程序包含在
<?php 这里是代码 ?>
避免使用中文目录和中文文件名php页面无法直接打开需要运行在服务器环境当中
php初体验
<?php
echo "hello world";
?>
输入中文乱码问题:如果使用echo输出中文,会乱码。
在php的语法中,末尾必须加分号,不然就报错了(最后一行可以不加分号)
<?php
//content-Type:text/html;返回内容是一个HTML文档文本
//charset=utf-8 设置编码集
header("content-Type:text/html;charset=utf-8");
echo "hello world";
echo "<br/>";
echo "你是哪里人?";
?>
变量
php是一门弱类型语法,变量的类型可以随意改变。 变量其实就是存储数据的容器
变量的命名规则
//1. 不需要关键字进行声明,变量在第一次赋值的时候被创建。
//2. 必须以$符号开始
//3. $后面的命名规则与js的变量命名规则一致。
$name = "小明";
echo $name;
数据类型
简单数据类型
字符串
$str = "小明";
echo $str;
整数
$num = 100;
echo $num;
浮点型
$float = 11.11;
echo $float;
布尔类型
$flag = true;
//当布尔类型值为true时,输出1
echo $flag;
$flag = false;
//当布尔类型为false时,输出空字符串
echo $flag;
字符串连接符
//1. 在php中,+号只有算数的功能,并不能拼串
//2. 在php中,拼串使用.
$name = "小明";
echo "大家好,我是" . $name . ",今年18岁";
php中的单引号与双引号
//1. 字符串的定义可以使用单引号,也可以使用双引号
$name = "小明";
$desc = '很帅';
//2. 双引号可以解析变量
//3. 单引号的性能会高于双引号(了解)
$str = '$name 很帅'; //$name 很帅
echo $str;
$str = "$name 很帅"; //小明 很帅
echo $str;
数组
在php中,数组分为两种,索引数组和关联数组
计算数组长度的方法: count(数组名);
索引数组(类似与JS中的数组)
$arr = array("张飞","赵云","马超");
echo $arr;//echo只能打印基本数据类型
echo $arr[0];//张飞
关联数组(类似与JS中的对象)
//属性名必须用引号引起来
$arr = array("name"=>"zhangsan", "age"=>18);
echo $arr["name"];
输出语句
//1. echo 输出简单数据类型 //2. print_r 输出数据结构,一般用于输出复杂类型。 print_r($arr);//print_r是一个函数,不要忘记小括号 //3. var_dump 输出完整的数据结构,包括类型,一般用于精准调试 var_dump($arr);
二维数组
数组中的每个元素又是一个数组 二维数组的存取元素,需要两次访问,依次确定行和列
$arr[x][y]
;
//索引数组 $arr=[ [1,2,3], [4,5,6], [7,8,9] ]; //取值 echo $arr[2][2]; //存储一个人信息 $info=[ "name"=>"zs", "age"=>100 ]; //存储一个班信息 $infos=[ [ "name"=>"zs", "age"=>100 ], [ "name"=>"ls", "age"=>100 ], [ "name"=>"ww", "age"=>100 ] ]; //取值 echo $infos[1]["name"];
语句
判断语句
基本上来说,所有语言的if..else语法都是一样
$age = 17; if ($age >= 18) { echo "终于可以看电影了,嘿嘿嘿"; } else { echo "哎,还是回家学习吧"; }
循环语句
遍历索引数组
$arr = array("张三", "李四", "王五", "赵六", "田七", "王八"); //获取数组的长度: count($arr) for($i = 0; $i < count($arr); $i++) { echo $arr[$i]; echo "<br>"; }
遍历关联数组
//遍历关联数组 $arr = array( "name"=>"zs", "age"=>18, "sex"=>20 ); foreach($arr as $key => $value) { echo $key . "=" . $value . "<br>"; }
函数
<?php header("content-Type:text/html;charset=utf-8"); //php中函数的语法与js中函数的语法基本一样,不同点在于 //1. 函数名大小写不敏感 //2. 函数的参数可以设置默认值 function sayHello ($name="周杰伦") { echo "大家好,我是$name"; echo "<br>"; } sayHello();//不传参数,会使用默认值 sayHello("峰峰");//传参数,默认值不生效 ?>
json的处理
json_encode();把数组转化为json对象
json_decode();把json转化为数组
注意:php中一般是将关联数组进行转化,前端才能收到进行处理