PhP的基本使用

html、css、Js---解析 成图形界面--浏览器(Browser)--输入地址--网络--服务器(Server)-----再通过浏览器解析成 图形界面

端口:电脑需要为网站分配资源,不同服务器默认的端口是80(现是0),如果被使用可以更换其他的端口,或把占用的软件关闭

172.0.0.1自己访问主机

172.0.0.1/html名,打开每一个页面,默认打开index.html

初认PhP

PHP是一种服务器端HTML嵌入式脚本描述语言,其最强大和最重要的特性就是跨平台和面向对象

1)PHP(超文本处理器),是一种服务器端端、跨平台、HTML嵌入式的脚本语言。PHP是B/S(Brower/Server的简写,即浏览器/服务器结构)体系结构,属于三层结构。

2)跨平台性:PHP几乎支持所有的操作系统。并且支持Apache、Nginx、IIS等多种Web服务器。

每个语句都要加分号

php环境搭建

1.工具phpStudy

1)WAMP W:windows A:apache M:mysql P:php

2)LAMP Linux apache mysqle php

3)LNMP Linux Nginx mysqle php (软件:apache与nagin帮助解析php文件)

php创建

php必须写在phpstudy根目录下 打开方式:

(1)127.0.0.1/目录

(2)localhost/目录

选择语句

if(条件)

{ 满足时; }

else

{不满足时;}

switch语句

switch(值)

{

        case 值: 语句;

        break;

        ...

}

循环语句

for\while\do...while (c语言一样)

字符串拼接 .$变量名.

foreach 循环

$colors = array("red","green","blue","yellow");

	foreach ($colors as $value) {
	  echo "$value <br>";
	}

参数一:循环的对象。

参数二:将对象的值挨个取出,直到最后。

如果循环的是对象,输出的是对象的属性的值。

数组

定义数组:$数组名=array(内容)

$footArr=array('留恋','怀念','思念')
$person=array('name'=>'吴京','film'=>'展览','wife'=>'元素3')

数组的使用 1.索引

完整输出数组: print_r($数组名);

遍历数组: 循环输出数组:

for($i=0;$i<count($startarr);$i++){
echo '提示语'.$startarr[$i]['name'].'提示语'.$start[$i]['film'];
echo '<br>';
}

二维数组:

$startarr=(
array('name'=>'元素1','film'=>'元素2'),
array('name'=>'元素1','film'=>'元素2'),
array('name'=>'元素1','film'=>'元素2')
);

解析PHP文件 成html文件--浏览器解析成画面 (利用php语法,自定义画面) php文件可写在html文件任何位置,以php文件标签为标准,否则以文件形式解析

函数

语法格式 function functionName() { //这里写代码 }

1.有参数、无返回值的函数

function sayName($name)

{ echo $name.'你好'; }

// 调用 sayName('smyhvae');

2.有参数、参数有默认值的函数

function sayFood($food='西兰花')

{ echo $food.'好吃'; }

// 调用 sayFood('西葫芦');

// 如果传入参数,就使用传入的参数 sayFood();

// 如果不传入参数,直接使用默认值

3.有参数、有返回值的函数

function sum($a,$b)

{ return $a+$b }

sum(1,2);

// 返回值为1+2=3

header()函数

浏览器访问http服务器,接收到响应时,会根据响应报文头的内容进行一些具体的操作。在php中,我们可以根据 header 来设置这些内容。

header()函数的作用:用来向客户端(浏览器)发送报头。直接写在php代码的第一行就行

1.设置编码格式
	header('content-type:text/html; charset= utf-8');
2.设置页面跳转
	header('location:http://www.baidu.com');
3.设置页面刷新的间隔
	header('refresh:3; url=http://www.xiaomi.com');

几种输出

1.echo:只能输出字符串,不能输出数据类型 、数组等多种数据

2.print_r:索引、元素

3.print:只能输出字符串等单一数据 不能输出数据类型 不能输出数组等多种数据有返回值true/false

4.var_dump:索引、元素、长度、数据类型

5.die:有两个功能:先输出内容,然后退出程序

echo详情

1.无引号:解析变量,数字

2.单引号:内部的内容只是作为字符串

3.双引号:自动解析php与html

变量拼接
  1. echo 。。。"变量"。。。(双引号内自动解析php、html)

  2. echo 。。。 .变量. 。。。(在需要连接的地方用.连接)

get与post上传数据
html上传数据
html文件(输入数据):
 <form action="02text.php" method="get">
            <label for="">姓名:
                <input type="text" name="userName">
            </label>
            <br/>
            <label for="">邮箱:
                <input type="text" name="userEmail">
            </label>
            <br/>
            <label for="">QQ:
                <input type="text" name="QQ">
            </label>
            <br/>
            <input type="submit" name="">
        </form>

(1)form内设置action="地址",即提交后跳转的页面

(2)利用input输入数据,数据储存到服务器中

(3)提交数据:input type="submit"--提交按钮

(4)name是get/post这个关系型数组的索引(key)

(5)在这里决定用post还是get(method="get"这里是post)

php输出数据
php(输出数据):
 <?php
        echo $_GET;//结果是arr
        echo '用户名:'.$_GET['userName'];
        echo "<br/>";
        echo '邮箱:'.$_GET['userEmail'];
        echo "<br/>";
        echo '姓名:'.$_GET['userName'].',邮箱:'.$_GET['userEmail'].',QQ:'.$_GET['QQ'];
        echo '<br/>';
        var_dump($_GET);
        echo "<br/>";
        print_r($_GET);
    ?>
(1)$_GET或$_POST,是一个关系型数组,其中name是这个数组中的索引
(2)$_GET或$_POST,输出该数组的全部内容
(3)$_GET['key']或$_POST['key'],输出元素内容(key是在输入时定义的name值)

区别:

(1)get在搜索栏中显示数据、post不显示

(2)文件的提交只能用post

html上传文件

<form action="./file_post.php" method="post"  enctype="multipart/form-data">
         <label for="">照片:
            <input type="file" name="picture"></label>
        <br/>
        <input type="submit" name="">
</form>

(1) enctype="multipart/form-data 是用来制定传输数据的特殊类型的,主要就是我们上传的非文本的内容,比如图片或是是mp3等。(print_r与var_dump等都无法打印数据结果)

php输出文件信息
print_r($_FILES); 
echo '<br>';

var_dump($_FILES);
echo '<br/>';
                
echo "文件名称:".$_FILES["picture"]["name"]."<br>";            
echo "文件类型:".$_FILES["picture"]["type"]."<br>";
echo "文件大小:".($_FILES["picture"]["size"]/1024)."kb<br>";
echo "临时目录:".$_FILES["picture"]["tmp_name"]."<br>";

(1)$FILES是一个复杂的关系型数组/二维数组

(2)$FILES'name'

(3)$_FILES'name'中双引号还是单引号没有要求,都可以使用

查看文件上传失败类型
$_FILES[‘myFile’][‘error’] 

UPLOAD_ERR_OK
值:0; 没有错误发生,文件上传成功。

UPLOAD_ERR_INI_SIZE
值:1; 上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值。 

UPLOAD_ERR_FORM_SIZE
值:2; 上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值。 

UPLOAD_ERR_PARTIAL
值:3; 文件只有部分被上传。 

UPLOAD_ERR_NO_FILE
值:4; 没有文件被上传。 
值:5; 上传文件大小为0.