【web前端】PHP入门
PHP入门
前言:了解一些知识
-
软件架构
- C/S(客户端->服务端)
- B/S(浏览器->服务端)
-
哪些技术可以开发网站?
php、jsp、asp、ruby、python、nodejs、c/c++等。 -
WAMP架构解读
windows + apache + mysql + php -
LAMP/LNMP架构解读
Linux + apache + mysql + php
Linux + nginx + mysql + php -
PHPnow
apache + mysql + php
一、PHP简介
- PHP语言的特点
PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。)- PHP脚本在服务器上运行
- PHP可在不同的平台上运行(windows、Linux、Unix、Mac OSX等)
- PHP与目前几乎所有的正在被使用的服务器兼容(Apache、IIS等),全球95%以上的网站都是由PHP开发的。
- PHP提供了广泛的数据库支持。
- PHP是免费的,可以同官网下载它:www.php.net
- PHP易于学习,并可高效的运行在服务器端。
- 作为一个后台语言,标准的变量、数据类型、运算、选择结构、循环结构、函数、数组;跟大多数的编程语言是一样的。
- PHP作为一个动态网页编程语言,它不仅能编写后台程序。同时也具备编写动态网页的能力,跟JSP一样,这是它们想当年流行起来的最重要的原因,没有之一。
二、动态网页
- php的代码使用了<?php ...... ?>包裹起来
三、PHP的原理
最重要的是,PHP的代码跟HTML的代码混合了,它的大概原理如图所示:
这样一来,后台的开发人员,就可以像写后台程序一样的写网页,岂不是很方便。
曾经,这种巧妙的解决方案,流行了很多年。
但是随着行业的发展,随着WEB2.0时代的到来。
随着网页交互的场景越来越多,随着用户体验的重要性逐步提升,网页上的工作量变得越来越大了。
因为页面不仅要求越来越美观,同时页面上的各种交互特效也越来越丰富(JS或Flash);
可是你再看看PHP这样的动态网页,对于一个特效要求极高的网站,
它可维护性好吗?它便于网页重构吗? 它代码可读性强吗? NO! 这些优点全都没有。
- RIA
于是那几年开始出现了一个叫做RIA的名词: 丰富的互联网应用程序。
传统的动态网页已经很难实现RIA了, 或者说实现它的成本非常高。那么它需要借助Flash的力量,或者JS的力量
于是人们开始慢慢的将前后端进行分离开来。 后台语言只负责后台程序接口的编写。
而一部分人只负责页面以及交互特效的完成。而网页需要的动态数据,可以通过ajax来获取。
这样一来,一个负责编写页面的人,即使他不懂后台语言,也能完成复杂的前端工作。因为网页上再也不会出现后台代码了。
四、PHP语法入门
4.1PHP的输出
echo "<h1>hello world</h1>";
- 类似于js中的console.log() 测试程序
var_dump(100);
var_dump("hello");
4.2定义变量
- php声明变量通过$符号进行声明
- 弱引用类型:给变量赋值什么数据,就是什么数据类型。
- php字符串拼接的时候,用的不是加号,而是 .
- php在进行字符串拼接的时候:占位符的方式进行拼接 {变量/表达式}
$username = "钢铁侠";
$age = 18;
echo "我是".$username.",今年".$age."岁<br/>";
echo "我是{$username},今年{$age}岁";
4.3 分支、循环
<?php
header('content-type:text/html;charset="utf-8"');
$isYes = true;
if($isYes){
echo "是";
}else{
echo "否";
}
$num = 2;
switch($num){
case 1:
echo "数字1";
break;
case 2:
echo "数字2";
break;
default:
echo "输入错误";
break;
}
echo "<br/>";
for($i = 0; $i < 5; $i++){
echo "下标".$i."<br/>";
}
function printHello(){
print "hello world<br/>";
}
printHello();
printHello();
?>
4.4数组
-
- 索引数组 下标是数字叫做索引数组
$cars = array("大众", "别克", "现代");
array_push($cars, "宝马", "奔驰");
// var_dump($cars);
// echo $cars[1];
for($i = 0; $i < count($cars); $i++){
echo "下标:{$i}, 数据:{$cars[$i]}<br/>";
}
-
- 关联数组 下标是字符串叫关联数组 (类似于ECMA6的map类型)
$arr = array("王五" => "打渔的", "李四" => "种地的", "张三" => "打猎的");
// var_dump($arr);
foreach($arr as $key => $value){
echo "下标:{$key}, 数据:{$value}<br/>";
}
$arr = array(
array("name" => "小白", "english" => 100, "math" => 50),
array("name" => "小花", "english" => 60, "math" => 80),
array("name" => "小红", "english" => 100, "math" => 100)
);
echo $arr[2]["math"];
for($i = 0; $i < count($arr); $i++){
var_dump($arr[$i]."<br/>");
}
-
- 全局数组
- $_GET 接收通过get提交过来的所有的数据
- $_POST 接收通过post提交过来的所有的数据
数组中的索引数组和关联数组可以相互结合,结合成多维数组。
数组的长度 count($cars) 返回数组的长度
4.5 md5编码
功能:md5将任何的数据,编成一个32位的十六进制的字符串。
【注】不可逆加密,同样的字符串加密以后,长的一样。
自行去设计一套加密规则。
- 自行去设计一套加密规则。
$str1 = "123abc";
echo md5(md5(md5($str1).'qianfeng')."qingdao");
echo "<br/>";
$str2 = "123abc";
echo md5(md5(md5($str2).'qianfeng')."qingdao");
4.6 时间戳
1568602644 存储时间
echo time();
date() 获取当前时间显示的时候,必须传入参数
Y 代表四位数的年
m 月份
d 日
H 小时
i 分钟
s 秒数
date_default_timezone_set("PRC");
echo date("Y年m月d日 H:i:s");
echo "<br/>";
echo date("Y/m/d H:i:s");
本文地址:https://blog.csdn.net/minggelin1997/article/details/111997410