当前位置:网站首页>php记录
php记录
2022-07-20 05:33:00 【知了还没睡】
一、web访问流程
服务器:提供服务的机器
web服务器:提供web访问(网站访问)服务的服务器,tomcat(java)、aphane(php)
ip:每个计算机的唯一标志
域名:方便人类使用,域名通过DNS解析成ip,从而找到对应的电脑(服务器)
端口:通过端口区分当前服务器下的某个服务
网关:同处一个网段198.168.6.xx,提供ip
防火墙:可禁止别的电脑或黑客或恶意软件访问你的电脑
虚拟主机:一个电脑只有只有一个aphche,所以只能搭建一个网站,如果配置了虚拟主机
就可搭建多个
配置虚拟主机配置文件地址:
E:\Apache24\conf\extra\httpd-vhosts.conf
配置ip域名文件地址:
C:\Windows\System32\drivers\etc\host
二、配置环境
1、下载apache,
2、下载php解析包
aphche下的conf文件下设置
LoadModule php7_module 'E:/server/php7/php7apache2_4.dll'
以及Define SRVROOT "E:/Apache24"
Listen 88
#加载php
LoadModule php7_module 'E:/server/php7/php7apache2_4.dll'
#将php解析器的配置文件进来
PHPIniDir 'E:/server/php7'
#分配代码或任务给php解析器解析
AddType application/x-httpd-php .php
php7安装mysql扩展:
https://blog.csdn.net/qq_41544227/article/details/85063362
三、命令行
测试语法:cd E:\Apache24\bin
httpd.exe -t //输出syntax ok
mysql的命令:
mysql -uroot -p
输入密码
四、基础
数据类型:
基本:
整点型
浮点型
布尔型
字符串型
复合类型:
对象(object)
数组
特殊类型:
资源类型resouce(数据库,文件)
null
类型转换
自动转换:$abc13==>0 ;$1.2.3abv=>1.2
强制转换:(float)$abc13 = 13 ;
获取数据类型:
布尔:var_dump($a)
gettype(变量名)
settype(变量名,数据类型int)
$a=1;$b=1
++a //先让自己加一再赋值(下一步得有运算或直接输出,不然没变化)
a++ //使用后再自己加一
while($a<=10){
echo $a
$a++
}
do{ //至少执行一次
echo $a
$a+=1
}while($a<10)
echo xxx,xxx //可同时输出多个
print xxx //只能输出一个
var_dump('text') //函数,输出类型和值
判断数组是否存在某值
isset($arr['test']) //存在则返回true
empty() //判断是否未定义或为空
//
echo time() //输出时间戳(秒)
echo date("Y-m-d h:i:s",time()); //格式化时间戳
$_strtime = strtotime('2020-05-06 05:03:03') //转为时间戳
//定义常量,常量名大写,可不带$使用 snke命名规则(字母加下划线)
define('TEST_USE','10000')
三。替代语法
if(){} ==> if(..;..;,;): endif
<?php for(..;..;..;): ?>
<?php endfor; ?>
四、数组循环
<?php
$arr = arry(1,2,3)
foreach($arr as $value){
echo $value //1 2 3
}
//for循环,调count方法拿到数组长度
$len = count($arr)
for($i=0;$i<$len;$i++){
echo $arr[$i] //1 2 3
}
数组排序函数
sort($arr) //从小到大
rsort($arr) //从大到小
指针函数
reset()
next() //指针下一个
count() //当前指针指向的值
其他函数
array_push($arr,1) //后面加入
in_array(1,$arr)
连接数据库
<?php
header("Content-type:text/html;charset=utf-8");
$servername = "localhost";
$user = "root";
$pass = "root123";
$dbname = "crud";
$mysqli=new mysqli($servername, $user, $pass);//本地、账号、密码,正确则返回1
mysqli_select_db($mysqli,$dbname); //连接表
$sql="select * from t_users";
$res=$mysqli->query($sql); //执行查询语句,->是类调用方法
$arr=array();
while ($row=$res->fetch_assoc()) {
$arr[]=$row;
}
$res->free();
//关闭连接
$mysqli->close();
echo(json_encode($arr));//这里用echo而不是return
//增加字段user、password
$jmmima = md5('12356') //加密
$sql = "insert into `login`(`user`,`password`) values('test','$jmmima')"
//删
$sql = "delete from `login` where `id` = 2"
//修改
$sql = "update `login` set `user` = `naename` where `id` = 3"
?>
安装数据库
主: https://blog.csdn.net/weixin_42869365/article/details/83472466
辅:https://www.cnblogs.com/pingzx/p/11731746.html
空密码=》设置密码:
mysql -u root -p
set password = '新密码'
Navicat版本问题打不开库,报1250 client :
https://my.oschina.net/u/3295928/blog/1811804
设置cookie
setcookie("key","value");
header("Location:index.php")
//获取cookie
$_COOKIE["key"]
//删除cookie
setcookie("key"); //不设置值即删除
使用session
php中:
session_start()
$_session['key'] = '10000' //值存在服务器的箱子里,浏览器的cookie会存加密的
unset($_session['key']) //删除
//存到文件中
file_put_contents("file.txt",value) //文件名、值
设置响应体
header("content-type","text/html") //响应的是html
读取文件
$contents = file_get_contents("test.json") //读取json文件
$data = json_decode($contents,true) //将json字符串转为json对象,true转为关联数组(正常的)
file_put_contents("test.json",$json) //存进文件
遍历
foreach($data in $items){
}
//$items是data[i] 即value
//表单提交
<?php echo $_serve['PHO_SELF']; ?> //提交到本php页
//验证普通表单
if($_SERVER['REQUEST_MOTHOD'] === 'POST'){ //如果是post提交
if(empty($_POST['title'])){
$_DLOBALS['message'] == '客户端没传这个。。' //定义全局的变量
}
}
//验证文件上传
$(empty($_FILES('tupian')))
$sources = $_FILES('tupian'){ }
if($sources['error'] == UPLOAD_ERR_OK){ } //如果为0则有上传文件 (UPLOAD_ERR_OK=0)
//此时文件会存在临时文件夹下,需移动到网站根目录才行
move_uploaded_file($sources['tmp_name'],'./upload/$sources['name']')
<input type="file" accept = "image/*" > //只能上传图片格式的 multiple多选
$in_array($arr,'test') //判断test是否在数组里面存在
边栏推荐
- 【ROS机器人系统】自主导航+YOLO目标检测+语音播报
- (4) Pyqt5 series tutorials: use pychart to design the internal logic of pyqt5 in the serial port assistant parameter options (I)
- 【CANN訓練營】基於昇思的GAN實現隨筆
- [cann training camp] cann training camp_ Shengteng AI interesting application realizes AI interesting application (Part 1) essay
- (8) Pytorch deep learning: convolutional neural network (basic) -- change (VII) fully connected neural network into convolutional neural network
- Data warehouse OLAP OLTP modeling method
- Li Hongyi machine learning 2020---p12 brief introduction of DL & p15 why DL
- C语言内存对齐规则及计算公式详解
- About encoding (ASCII / Unicode / utf8)
- (5) Pyqt5 series tutorials: use pychart to design the internal logic of pyqt5 in the serial port assistant parameter options (II)
猜你喜欢
Chapter005-FPGA学习之串口回传
(2) Pytorch deep learning: gradient descent
玩转CANN目标检测与识别一站式方案【介绍篇】
[deep learning] convolutional neural network maximum pool operation
关于图像傅里叶变换得到的频谱图的通俗理解
(4) Pyqt5 series tutorials: use pychart to design the internal logic of pyqt5 in the serial port assistant parameter options (I)
(7) Pytorch deep learning: full connection layer network
基于昇腾AI异构计算架构CANN的通用目标检测与识别一站式方案初体验
【ROS機器人系統】自主導航+YOLO目標檢測+語音播報
Understand the seperable revolution
随机推荐
【2022年第一期 CANN训练营进阶班应用课】附加题——媒体数据处理+模型推理
MIMO-OFDM无线通信技术及MATLAB实现(2)-SISO下的室外信道模型
Analyze the relationship between iteration, epoch and batchsize
HPDC Huawei partners and Developers Conference 2022 essay
How to use idea to make jar packages
Load different plist files according to different configurations
Filter/split/sideoutput comparison of Flink diversion
(4) Pytorch deep learning: pyttorch realizes linear regression
[système robotique Ros] navigation autonome + détection de cibles Yolo + annonce vocale
Paper reading -- risk resistant resource allocation for embB and urllc coexistence under m/g/1 queuing model
Chapter002-FPGA学习之按键控制LED灯和蜂鸣器
建筑装饰毕业论文题目
详解pytorch fold和unfold用法
[camp d'entraînement can] essai de mise en œuvre du Gan basé sur Shengsi
(9) Pytorch deep learning: convolutional neural network (the inception module in googlenet network architecture is this convolutional neural network architecture)
(6) Pytorch deep learning: logistic regression (multi-layer and multi-dimensional feature input)
The difference between struct and class in swift
Tensorflow 1.x 和 Pytorch 中 Conv2d Padding的区别
STM32CubeMX通过FatFS读写U盘
论文学习---Resource allocation and beamforming desing in the short blocklength regime for URLLC