PHP是用于网页服务器端编程的脚本语言;
PHP标记:
<?php
1,写在这个结构内的代码才会以PHP语法解析
2,写在这个结构外的代码会原样返回
?>
输出内容的方式:
echo: 输出多个字符串;
print: 输出一个字符串的值;
print_r: 可以输出复杂数据类型;,如数组,以键值对的形式输出;
var_dump: 可以输出复杂数据类型,如数组,一键值对的形式输出,还可以输出数据的长度;
字符串:
' ': 不能解析变量,会将变量当成普通字符串处理 //
"": 能解析变量 \" \ t \n \r \$
数组:
创建方式:
$arr = array();
$arr = [];
arr[]= value;// 可以自动创建一个数组,并将当前值添加到数组,如果存在添加数据到数组;
数组的类型:
1. 索引数组:不认为设置$key $arr = array(1,2,3,4);
2. 关联数组:认为摄者$key和$value $arr = array("name"=>"$jack");
3. 混合数组:$arr = array(1,2,3,“name”=>“jack”,4)【键值对跟之前索引数组互不影响】;
4. 二维数组:数据的值本身又是一个数组:
$arr = array(
array{
"name=>"jack";
"age"=>20
},
array()
)
数组的遍历:
1 , for($i = 0;$i<count(数组);$i++){}
2,foreach(需要遍历数组对象 as $key =>$value){}
变量作用域: 函数内部默认不能使用函数外部所声明的成员,如果想则:
1,使用global关键字;
2,使用超全局变量$GLOBALS;
常量的定义和使用:
define(名称,值,false);区分大小写
载入其他文件(文件包含):
include: 如果载入失败,不会报错,后续代码继续执行,可以重复载入;
include_once: 如果载入失败,不会报错,后续代码继续执行,它只能载入一次;
require: 如果载入失败,会报错,后续代码不会执行,它可以重复载入;
require_once: 如果载入失败,会报错,后续代码不会执行,他不可以重复载入;
常用API:
文件操作:
file_get_contents :可以读取文件内容并返回
file_put_contents :(文件路径,需要写入的内用,FILE_APPEND),可以将制定的字符串内容写入到文件,
其中第三个参数FILE_APPEND可以实现文件内容的追加;
html混编
1.在<?php 在这个结构内部只能写符合php语法的代码 ?>
2.在<?php ?>结构的代码会原样输出
3.混编实现方式
1.<?php echo '<p></p>' ?>
2.
<?php if(){ ?>
<p></p>
<php }?>
文件操作:
file_get_contents('文件路径'):获取文件的内容,通常就只是获取文本文件的内容。
file_put_contents('文件路径', '要写入的内容',[FILE_APPEND]):将内容写入该文件,FILE_APPEND表示追加写入
get请求的基本实现模式:
客户端(html):
<form action="dir1/getdata.php" method="get" >
<input type="text" name="name1" />
<input type="password" name="name2" />
.....
<input type="submit" />
</form>
服务器端:
接收数据:
$data1 = $_GET['name1']; //$_GET就是一个关联数组
$data2 = $_GET['name2'];
ajax的基本代码模式(get请求):
var xhr = new XMLHttpRequest();
//url通常就是一个php文件,可以返回信息
var url = "server.php?name=jack&age=18&a=99&b=ccc";
xhr.open("get", url);
xhr.send(null);
xhr.onreadystatechange = function(){
if( xhr.status == 200 && xhr.readyState == 4){
var str = xhr.responseText; //获得返回的文本
}
}
删除用户的代码思路
list.php:
<a href="del.php?id=1" >删除</a>
<a href="del.php?id=2" >删除</a>
<a href="del.php?id=3" >删除</a>
del.php:
<?php
$id = $_GET['id'];
$sql = "delete from xx表 where id= $id ";
$res = opt($sql);
if($res){
echo '成功';
header("Location: list.php");
}else{
echo '失败';
}
?>
服务器端跨域 CORS跨域:cross-origin resource sharing;
header( 'Access-Control-Allow-Origin:*' );
header( 'Access-Control-Allow-Origin:http://www.study.com');
Jquery中的jsonp
dataType:'jsonp' 设置dataType值为jsonp即开启跨域访问
jsonp 可以指定服务端接收的参数的“key”值,默认为callback
jsonpCallback 可以指定相应的回调函数,默认自动生成
XMLHttpRequest2.0:
timeout:
document.querySelector("button").onclick = function(){
var xhr = new XMLHttpRequest();
// 设置请求行
xhr.open("get","01-timeout.php");
// 设置请求头:get不需要设置
// 设置请求体
xhr.send(null);
// 设置超时
xhr.timeout = 2000;
xhr.ontimeout = function(e){
console.log(e);
}
// 接收响应
xhr.onreadystatechange = function(){
if(xhr.status == 200 && xhr.readyState == 4){
alert(xhr.responseText);
}
}
}
formData:
// 1.获取表单
var myform = document.querySelector("#form1");
// 2.将表单做为参数传递,在创建formData对象的时候
var formdata = new FormData(myform);
// 特点之一:可以自由的追加参数
formdata.append("address","传智播客");
// 3.生成的formData对象就可以直接做为异步对象的参数传递
xhr.send(formdata);
xhr.onreadystatechange = function(){
if(xhr.status == 200 && xhr.readyState == 4){
console.log(xhr.responseText);
}
}
}
上传进度:
var xhr = new XMLHttpRequest();
xhr.open("post","03-uploadFile.php");
// 我想自己来设置一个请求头,看行不行--注意了,如果人为了设置了请求头,那么文件数据无法正确的传递
// xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
var myform = document.querySelector("#form1");
var formData = new FormData(myform);
// 监听文件上传的进度:这个监听必须在send之前来设置
xhr.upload.onprogress = function(e){
var current = e.loaded;
var total = e.total;
var percent = current / total * 100 +"%";
document.querySelector(".in").style.width = percent;
document.querySelector("span").innerHTML = Math.floor(current / total * 100)+"%";
}
xhr.send(formData);
xhr.onreadystatechange = function(){
if(xhr.status == 200 && xhr.readyState == 4){
console.log(xhr.responseText);
}
}
}
|
|