PHP入门

    • 前言:了解一些知识
    • 一、PHP简介
    • 二、动态网页
    • 三、PHP的原理
    • 四、PHP语法入门
        • 4.1PHP的输出
        • 4.2定义变量
        • 4.3 分支、循环
        • 4.4数组
        • 4.5 **md5编码**
        • 4.6 时间戳

前言:了解一些知识

  • 软件架构

    • 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数组

    1. 索引数组 下标是数字叫做索引数组
    $cars = array("大众", "别克", "现代");
    array_push($cars, "宝马", "奔驰");
    // var_dump($cars);

    // echo $cars[1];

    for($i = 0; $i < count($cars); $i++){
        echo "下标:{$i}, 数据:{$cars[$i]}<br/>";
    }
    1. 关联数组 下标是字符串叫关联数组 (类似于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/>");
}
    1. 全局数组
  • $_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