PHP是什么?
PHP能干什么?开发网站
输出一个属于自己的PHP程序。
<? php ?> 标识(告诉你这是什么)
echo ‘hello world’ 代码
echo (指令)(类似一个动作),把东西输出出来
‘字符串里的东西没有代码意义’
;(分号就是说明这一段已经结束了和下一段没有关系了)
<?php
'hollo world'
?>;
<?php
$sex = '男 ' ;//变量
if ($sex == '男') {//如果
echo ‘帅哥来店里看看’;}
else{echo "妹妹来我们店里看看";}
?>
一个等号‘=’等于赋值:如,x=1叫赋值,两个等号‘==’叫判断
注意else{}的语法,是花括号
对赋值进行判断,如果符合执行输出变量如果不是则执行else
$age = 14;(这个就是个盒子,age就是变量名,14就是变量值)。
当我们输出age的时候(echo $age;)(输出了14,假如改变这个值,例如,$age = 19,就会输出19)
综上所述,一个盒子只能放一个东西,意思是一个变量只能储存一个值
打开盒子>把东西放进>贴标签/打开盒子>把东西取出来
(=)等于就是代表赋值,意思是把东西放进盒子里的操作。
解决php中中文乱码问题方法
1、php文件本身的编码与网页的编码应匹配
a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html; charset=gb2312"),
静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=gb2312">,
所有文件的编码格式为ANSI,可用记事本打开,另存为选择编码为ANSI,覆盖源文件。
b. 如果欲使用utf-8编码,那么php要输出头:header(“Content-Type: text/html; charset=utf-8"),
静态页面添加<meta http-equiv="Content-Type" content="text/html; charset=utf-8">,
所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有BOM,
如果使用session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->UTF-8签名,
选择总是删除,再保存就可以去掉BOM信息了。
2、php本身不是Unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。
ps:$就是变量名的标识,有它才是告诉电脑这个是变量。
运算符号
加减乘除,取余,比较,大于等于,小于等于,不等于
<?php
$wang =1666;
$ma = 6293;
echo $ma+$wang;
?>
以上减同理
乘法:
<?php
$a1 =666;
$a = $a1*15;
echo $a
?>
取余:
echo 7%3
比较:
<?php
$ni = 16;
$wo = 19;
if($ni==$wo){echo'同岁';}
else{echo'不同岁';}
?>
比较大小相等
<?php
$ni = 16;
$wo = 19;
if($ni>=15){echo'大于';}
else{echo'小于';}
?>
小于同理
<?php
$ni = 16;
$wo = 19;
if($ni<=15){echo'大于';}
else{echo'小于';}
?>
不等于
<?php
$ni = 16;
$wo = 19;
if($ni!=15){echo'大于';}
else{echo'小于';}
?>
!感叹号的意思是不等于
控制结构
顺序结构(意思是从上往下,从左往右,按常识书写读看)
$a = 1
$a = 2
分支语句
<?php
$ni = '女';
if($ni == '男'){echo'你好,男孩';}
else{echo'你好,女孩';}
?>
循环语句
while() 不断地做某件事
<?php
header("Content-Type: text/html; charset=utf-8");
$water=1;
while($water<6)
{echo'我喝了'.$water.'杯 <br />';
$water=$water+1;}
echo'喝饱了'.$water.'杯水';
?>
'.'点就是连接符
while (条件)
{
要执行的代码;
}
循环输出
1-100顺序输出
<?php
$i=1;
while($i<=999)
{echo $i.'<br />';
$i=$i+1;}
?>
1-100偶数输出
<?php
$i=1;
while($i<=100)
{if($i%2 == 0)
{echo $i."<br />";}
$i = $i+1;}
?>
1-100 7的倍数输出a,13的倍数输出b
<?php
$i = 1;
while($i<=100){
if($i%7 == 0){
echo"a<br/>";
}
else{if($i%13 == 0){
echo "b<br />";
}else{echo $i."<br />";}
}
$i = $i+1;
}
?>
PHP strstr() 函数(用于匹配字符串,过滤非法传参)
<?php
$a='cnm';
if(strstr($a,'cmn') == 'cnm'){
echo 'no';
}
else{
echo 'yes';
}
?>
PHP str_replace() 函数
把字符串 "Hello world!" 中的字符 "world" 替换为 "Shanghai":
<?php
echo str_replace("world","Shanghai","Hello world!");
?>
要替换的/替换成什么/在那个语句里字符串里替换
数组(相当于一个储物柜,一个格子一件东西)
定义数组=>取出东西
<?php
header("Content-Type: text/html; charset=utf-8");
$a = array(001=>'帽子',002=>'衣服',003=>'手机');
echo $a[002];
?>
当你不知道柜子里面是什么的时候可以用var_dump函数查看
<?php
header("Content-Type: text/html; charset=utf-8");
$a = array(001=>'帽子',002=>'衣服',003=>'手机');
var_dump($a);
?>
接受传参:
<?php
$_GET [预定义全局变量]
预定义的意思是:指的是不需要你规定,系统已经规定好了
全局变量的意思是:在任何地方都可以调用
?>
用var_dump函数查看一下$_GET是什么东西
浏览器接受传参判断成绩/GET要使用大写
<?php
header("Content-Type: text/html; charset=utf-8");
if($_GET['fenshu']<60){
echo'同学你不及格了';
}
else{
echo'同学你及格了';
}
?>
一个表单有三个基本组成部分:
表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。
Get请求与Post请求的特性
1、Get请求:
Get请求是将数据添加到URL中并传递到服务器,通常利用一个问号“?”代表URL地址的结尾与数据参数的开端。
后面的参数每一个数据参数以“名称=值”的形式出现,参数与参数之间利用一个连接符&来区分。
2、Post请求:
Post请求数据是放在HTTP主体中的,其组织方式不只一种,有"&"连接方式,也有分割符方式,可隐藏参数,传递大批数据,比较方便。
表单标签<表单域+表单按钮>,先写表单标签>表单域>表达按钮
创建一个表单
<form action='2.php' method='post'>
<input type='text' />
</ form>
action=url用来指定处理提交表单的格式.它可以是一个URL地址(提交给程式)或一个电子邮件地址(指的是action提交到什么地方)
method=get或post指明提交表单的HTTP方法. (指的是method该用什么请求方式提交)
type="text"定义单行文本输入框
value属性定义文本框的初始值
name属性定义文本框的名称,要保证数据的准确采集,必须定义一个独一无二的名称
<form action='2.php' method='post'>
将数据传输到2.php 使用post请求进行传参
<input type='text' name='fenshu' />
定义一个文本框,给这个文本框一个名称
<input type = 'submit' value='提交'/>
提交数据,给提交一个按键
</ form>
<?PHP
var_dump($_POST)
查看数组
?>
<?PHP
$fenshu=$_POST['fenshu'];
$_POST[] 是数组 可以接收通过post方式传参过来的数据
一般用这个比较多
if($fenshu>=60){
echo'及格';
}
else{
echo'不及格';
}
?>
<?PHP
$fenshu=$_REQUEST['fenshu'];
REQUEST是超级全局变量,可以接受get和post请求
一般用这个比较多
if($fenshu>=60){
echo'及格';
}
else{
echo'不及格';
}
?>
<form action='2.php' method='GET'>
<input type='text' name='fenshu' />
<input type = 'reset' value='提交'/>
reset复位按键,清空所有值,方便重新输入
</ form>
PHP和数据库的交互
<?php
$c=mysqli_connect('localhost','root','root');
定义变量 本地连接,账号,密码
mysqli_select_db($c,'jjj');
连接数据库
$sql = 'insert into a value(255,\'php\')';
mysqli_query($c,$sql);
执行任意sql语句
?>
不写第二条也行
<?php
$c=mysqli_connect('localhost','root','root','jjj');
定义变量 本地连接,账号,密码,连接数据库的库名
$sql = 'insert into a value(255,\'php\')';
\\用转义字符区分单引号
mysqli_query($c,$sql);
?>
<?php
$conn=mysqli_connect('localhost','root','root','jjj');
定义变量 连接本地,账号,密码,库名
$sql = 'select*from a';
$boss= mysqli_query($conn,$sql);
执行SQL语句,把结果返回给boss
while($kiss=mysqli_fetch_array($boss)){
kiss是数组,储存boss返回的结果
echo $kiss['id'];
输出kiss
echo"<br />";
}
?>
创建一个分数登记
数据表创建
create table fenshu(nane varchar(255),fs int(10),jg int(3));
简单建立接受用户传入数据的PHP
<?php
$name = $_POST['name']; //接收用户传入参数
$fenshu = $_POST['fenshu'];//接收用户传入参数
if($fenshu<60){
$i=0; //用0代表不及格
echo'no'
}
else{
$i=1; //用1代表及格
echo'yes'
}
$conn=mysqli_connect('localhost','root','root','jjj'); //连接数据库,连接账号,连接密码,连接的库名
$sql = 'insert into fenshu value($nane,$fenshu,$i)'; //插入用户传入的数据
$boss= mysqli_query($conn,$sql); //执行SQL语句
?>
完善HTML和PHP之间的交互
<?php
$name = $_POST['name']; //定义变量以post的请求方式传入变量
$fenshu = (int)$_POST['fenshu']; //定义变量以post的请求方式传入变量,
用户在前端输入的是字符串类型所以要强转/在传参方式前加上(类型)即可
if($fenshu<60){ //判断用户传入数据是否小于60
$i=2; //定义变量,2为假,也就是不及格,输出‘no’
echo'no';
}
else{
$i=1; //定义变量,1为真,也就是及格,输出‘yes’
echo'yes';
}
$conn=mysqli_connect('localhost','root','root','kali'); //连接本地,账号,密码,库名
$sql = "insert into fenshu values('$name','$fenshu','$i')"; //执行插入语句,将用户传入数据插入到表里
$boss= mysqli_query($conn,$sql); //执行
?>
<form action='1.php' method='POST'> //传入数据到1.PHP里面,用post请求提交
姓名<input type='text' name='name' /><br /> //定义文本框,给文本框一个变量名,换行
分数<input type='text' name='fenshu' /><br /> //定义文本框,给文本框一个变量名,换行
<input type = 'reset' value='提交'/> //定义文本框,复位,控制提交
</ form>
输出表格中及格
<?php
$conn=mysqli_connect('localhost','root','root','kali'); //连接数据库,账号,密码,库名
$sql = "select*from fenshu where jg=1"; //SQL语句设置条件where 字段=1(及格时)
$boss= mysqli_query($conn,$sql); //执行SQL语句
while($a = mysqli_fetch_array($boss)){ //循环执行,把循环执行的结果返回到变量里
echo $a['nane']; //输出姓名
echo $a['fs'].' '; //输出分数
if($a['jg'] == 1){ //判断变量是否等于jg==1,将结果返回给$a(也就是及格)
echo 'yes<br />'; //输出yes
}
else{
echo'no <br />'; //不等于输出no
}
}
?>
实现注册和登录
先新建一张表名为admin
create table admin(usename varchar(255),password varchar(255));
写一个登录页面
HTML部分
<h5>登录后台<h5>
<form action='2.php' method='POST'> #将数据传入到2.PHP里,使用post请求方式
登陆用户<input type='text' name='username' /><br /> #定义文本框,定义名字
登录密码<input type='text' name='password' /><br /> #定义文本框,定义名字
<input type = 'submit' value='提交'/> #提交按键
</ form>
PHP部分
<?php
$username = $_POST['username']; #定义变量,接受用户传入数据
$password = $_POST['password']; #定义变量,接受用户传入数据
$conn=mysqli_connect('localhost','root','root','kali'); #连接本地,账号密码,库名
$sql = "select*from admin where username='$username'and password='$password'"; 查找表admin 设置条件用户输入要等于账号密码字段
$boss= mysqli_query($conn,$sql); #执行SQL语句
$row=mysqli_fetch_array($boss); #将执行结果返回到row里
if($username==$row['username'] and $password==$row['password']) #判断用户输入与查询结果是否一致
{
echo'登陆成功'; #一致输出登陆成功
}
else{
echo'登录失败'; #不一致输出登陆失败
}
?>
写一个登录页面
HTML部分
<h1>注册页面<h1>
<form action='1.php' method='POST'> #将数据传入到1.PHP里,使用post请求方式
注册用户<input type='text' name='username' /><br /> #定义文本框,定义名字
注册密码<input type='password' name='password' /><br />#定义文本框,定义名字
<input type = 'submit' value='提交'/> #提交按键
</ form>
PHP部分
<?php
@$username= $_POST['username']; #定义变量,用户输入传入变量里
@$password= $_POST['password']; #定义变量,用户输入传入变量里
$conn = mysqli_connect ('localhost','root','root','kali'); #连接
$sql = "insert into admin value('$username','$password')"; #SQL语句将用户输入插入到字段里
echo $sql; #输出执行回显
$a = (mysqli_query($conn,$sql)); #定义变量,执行SQL语句
if($a){
echo '注册成功'; #判断变量是否执行成功
}
else{
echo'注册失败';
}
?>