WEB安全之PHP基础(一):PHP基本语法格式、数据类型常量以及字符串、运算符、控制语句

  • 1.PHP简述
  • 2.基本语法格式
  • 3.数据类型、常量以及字符串
  • 4.运算符
  • 5.控制语句
    • 5.1.条件控制语句
    • 5.2.循环控制语句

1.PHP简述

  • PHP(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。
    在一个php文件中可以包括以下内容:
    PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
    PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
    PHP 文件的默认文件扩展名是 “.php”
  • php的使用:
    1.PHP 可以生成动态页面内容
    2.PHP 可以创建、打开、读取、写入、关闭服务器上的文件
    3.PHP 可以收集表单数据
    4.PHP 可以发送和接收 cookies
    5.PHP 可以添加、删除、修改您的数据库中的数据
    6.PHP 可以限制用户访问您的网站上的一些页面
    7.PHP 可以加密数据

2.基本语法格式

  • PHP 脚本以 <?php 开始,以 ?> 结束
<?php
//php脚本的基本格式
/** 多行注释,跟java的注释方法相同* */
变量的命名
变量以 $ 符号开始,后面跟着变量的名称
变量名必须以字母或者下划线字符开始
变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
变量名不能包含空格
//php的变量声明是以$开始的
$num = 3.14;
$str = "hello";/*static的关键字的使用* 当一个函数完成时,它的所有变量通常都会被删除。* 然而,有时候您希望某个局部变量不要被删除。* 要做到这一点,请在您第一次声明变量时使用 static 关键字:* */
function test(){static $n=0;$n++;echo "调用了一次".$n."\n";
}
test();test();test();
?>
  • 访问本地80端口,表示php study调试成功
  • PHP Storm是编写PHP的集成工具
  • 新建网站,做练习用
  • 此时网址是访问本地的

  • 测试环境是否搭建好

  • 非规范,可执行

  • 注释
  • 变量名
  • .作为拼接,static静态变量
  • 函数中调用该关键字,某个局部变量不要被删除。



  • 不加static,运行一次变量消失,仍为1

3.数据类型、常量以及字符串

  • php有5种数据类型:String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
<?php
$a = "字符串类型";
$b = 1234;//整形
$c = -3.1415;//浮点型
$d = 8E-3;
$e = true;//boolean类型
$f = array("A","B","C");//数组类型
class obj{//php对象的声明var $num;function name() { }
}
$o = new obj();//对象实例化类型
$g = NULL;//NULL
var_dump($a);var_dump($b);var_dump($c);var_dump($d);
var_dump($e);var_dump($f);var_dump($o);var_dump($g);
?>
  • " "阔起字符串

  • 整型

  • 浮点型
  • 布尔型
  • 打印数组

  • 声明对象
  • null类型
  • 字典

  • 常量:常量是一个简单值的标识符。该值在脚本中不能改变。(在整个脚本中都能使用)
  • 一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
    设置常量,使用 define() 函数,函数语法如下:
  • bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
      该函数有三个参数:
    name:必选参数,常量名称,即标志符。
    value:必选参数,常量的值。
    case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
<?php
// 常量
define("CL", "这是一个全局常量", true);
echo CL; // 默认false,变量名区分大小写
echo cl; // true不区分大小写
?>
  • 默认false,区分大小写,不区分可以加true

  • @屏蔽符号,不会报错

  • 预定义常量
    PHP预定义了许多常量,这些常量无需使用define()函数定义,可直接在程序中使用。下面列举了一些常用的PHP预定义常量。

  • (1)FILE(FILE前后分别是两个下画线):当前正在处理的脚本文件名,若使用在一个被引用的文件中(include或require),那么  它的值就是被引用的文件,而不是引用它的那个文件。
    (2)LINE(LINE前后分别是两个下画线):正在处理的脚本文件的当前行数。
    (3)PHP_VERSION:当前PHP预处理器的版本,如5.4.16。
    (4)PHP_OS: PHP所在的操作系统的类型。如Linux。
    (5)TRUE:表示逻辑真。FALSE:表示逻辑假。NULL:表示没有值或值不确定。
    (6)DIRECTORY_SEPARATOR: 表示目录分隔符,UNIX或Linux操作系统环境时的值为“ / ”, Window操作系统环境时的值为 “ \ ”。

<?php
echo __FILE__;
echo "<br/>";
echo __LINE__;
echo "<br/>";
echo PHP_VERSION;
echo "<br/>";
echo PHP_OS;
echo "<br/>";
echo DIRECTORY_SEPARATOR;
?>

  • 脚本位置

  • 换行

  • 行号

  • php版本

  • 系统

  • 用哪个目录分割符

  • 整型
    整数类型:保存整数数值(范围限制),4个字节存储数据。PHP中默认为有符号。
    在PHP中提供四种整形的定义方式,十进制定义,二进制定义,八进制定义和十六进制定义

$a = 120 //十进制
$a = 0b110 //二进制
$a = 0120  //八进制
$a = 0x120 //十六进制// 使用echo输出时。默认输出为十进制
decbin() // 十进制转二进制
decoct() // 十进制转八进制
dechex() // 十进制转十六进制
bindec() // 二进制转十进制
bin2hex() //二进制转十六进制
  • 输出为二进制
  • 自动转为整型

  • 将十六进制转换成十进制输出

  • 字符串:字符串变量用于存储并处理文本。
<?php
$name='暗月';
//双引号 里面有变量 会 输出变量的值
$str ="这是 $name 的全栈渗透测试培训,这是一个比较高质量的课程,一个很大的体系 欢迎来学习。";
//单引号 如果里面有变量都作为一个字符串处理
$str1 ='这是 $name 的全栈渗透测试培训,这是一个比较高质量的课程,一个很大的体系 欢迎来学习。';
echo $str;
echo $str1;
  • 第一个可以显示name,第二个不可以显示name;
  • 单引号内有变量仍然识别为字符串

  • strlen返统计字符串有多少个字符


  • 去掉空格,trim
  • 查找字符串,返回位置,strpos

  • 字符串截取函数,substr



  • 中文有时会乱码
  • md5加密
  • 一般作为网站加密存到数据库的字符串
  • 通过下标取字符的值

  • 全部取出来,遍历字符串

  • 加换行符遍历

<?php
// 字符串
$text1 = "hello";
$text2 = "world";
echo $text1 . " " . $text2; // "."是并置运算符(连接)
echo "返回字符串的长度:", strlen($text1);
echo "返回子串的第一次位置:", strpos($text1, "l");
?>
// A code block
var foo = 'bar';
  • 字符的操作函数
    addcslashes — 以 C 语言风格使用反斜线转义字符串中的字符
    addslashes — 使用反斜线引用字符串
    bin2hex — 函数把包含数据的二进制字符串转换为十六进制值
    chop — rtrim 的别名
    chr — 返回指定的字符
    chunk_split — 将字符串分割成小块
    convert_cyr_string — 将字符由一种 Cyrillic 字符转换成另一种
    convert_uudecode — 解码一个 uuencode 编码的字符串
    convert_uuencode — 使用 uuencode 编码一个字符串
    count_chars — 返回字符串所用字符的信息
    crc32 — 计算一个字符串的 crc32 多项式
    crypt — 单向字符串散列
    echo — 输出一个或多个字符串
    explode — 使用一个字符串分割另一个字符串
    fprintf — 将格式化后的字符串写入到流
    get_html_translation_table — 返回使用 htmlspecialchars 和 htmlentities 后的转换表
    hebrev — 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew)
    hebrevc — 将逻辑顺序希伯来文(logical-Hebrew)转换为视觉顺序希伯来文(visual-Hebrew),并且转换换行符
    hex2bin — 转换十六进制字符串为二进制字符串
    html_entity_decode — Convert HTML entities to their corresponding characters
    htmlentities — 将字符转换为 HTML 转义字符
    htmlspecialchars_decode — 将特殊的 HTML 实体转换回普通字符
    htmlspecialchars — 将特殊字符转换为 HTML 实体
    implode — 将一个一维数组的值转化为字符串
    join — 别名 implode
    lcfirst — 使一个字符串的第一个字符小写
    levenshtein — 计算两个字符串之间的编辑距离
    localeconv — Get numeric formatting information
    ltrim — 删除字符串开头的空白字符(或其他字符)
    md5_file — 计算指定文件的 MD5 散列值
    md5 — 计算字符串的 MD5 散列值
    metaphone — Calculate the metaphone key of a string
    money_format — 将数字格式化成货币字符串
    nl_langinfo — Query language and locale information
    nl2br — 在字符串所有新行之前插入 HTML 换行标记
    number_format — 以千位分隔符方式格式化一个数字
    ord — 转换字符串第一个字节为 0-255 之间的值
    parse_str — 将字符串解析成多个变量
    print — 输出字符串
    printf — 输出格式化字符串
    quoted_printable_decode — 将 quoted-printable 字符串转换为 8-bit 字符串
    quoted_printable_encode — 将 8-bit 字符串转换成 quoted-printable 字符串
    quotemeta — 转义元字符集
    rtrim — 删除字符串末端的空白字符(或者其他字符)
    setlocale — 设置地区信息
    sha1_file — 计算文件的 sha1 散列值
    sha1 — 计算字符串的 sha1 散列值
    similar_text — 计算两个字符串的相似度
    soundex — Calculate the soundex key of a string
    sprintf — Return a formatted string
    sscanf — 根据指定格式解析输入的字符
    str_contains — Determine if a string contains a given substring
    str_ends_with — Checks if a string ends with a given substring
    str_getcsv — 解析 CSV 字符串为一个数组
    str_ireplace — str_replace 的忽略大小写版本
    str_pad — 使用另一个字符串填充字符串为指定长度
    str_repeat — 重复一个字符串
    str_replace — 子字符串替换
    str_rot13 — 对字符串执行 ROT13 转换
    str_shuffle — 随机打乱一个字符串
    str_split — 将字符串转换为数组
    str_starts_with — Checks if a string starts with a given substring
    str_word_count — 返回字符串中单词的使用情况
    strcasecmp — 二进制安全比较字符串(不区分大小写)
    strchr — 别名 strstr
    strcmp — 二进制安全字符串比较
    strcoll — 基于区域设置的字符串比较
    strcspn — 获取不匹配遮罩的起始子字符串的长度
    strip_tags — 从字符串中去除 HTML 和 PHP 标记
    stripcslashes — 反引用一个使用 addcslashes 转义的字符串
    stripos — 查找字符串首次出现的位置(不区分大小写)
    stripslashes — 反引用一个引用字符串
    stristr — strstr 函数的忽略大小写版本
    strlen — 获取字符串长度
    strnatcasecmp — 使用“自然顺序”算法比较字符串(不区分大小写)
    strnatcmp — 使用自然排序算法比较字符串
    strncasecmp — 二进制安全比较字符串开头的若干个字符(不区分大小写)
    strncmp — 二进制安全比较字符串开头的若干个字符
    strpbrk — 在字符串中查找一组字符的任何一个字符
    strpos — 查找字符串首次出现的位置
    strrchr — 查找指定字符在字符串中的最后一次出现
    strrev — 反转字符串
    strripos — 计算指定字符串在目标字符串中最后一次出现的位置(不区分大小写)
    strrpos — 计算指定字符串在目标字符串中最后一次出现的位置
    strspn — 计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度。
    strstr — 查找字符串的首次出现
    strtok — 标记分割字符串
    strtolower — 将字符串转化为小写
    strtoupper — 将字符串转化为大写
    strtr — 转换指定字符
    substr_compare — 二进制安全比较字符串(从偏移位置比较指定长度)
    substr_count — 计算字串出现的次数
    substr_replace — 替换字符串的子串
    substr — 返回字符串的子串
    trim — 去除字符串首尾处的空白字符(或者其他字符)
    ucfirst — 将字符串的首字母转换为大写
    ucwords — 将字符串中每个单词的首字母转换为大写
    vfprintf — 将格式化字符串写入流
    vprintf — 输出格式化字符串
    vsprintf — 返回格式化字符串
    wordwrap — 打断字符串为指定数量的字串

4.运算符

  • 基本运算符:
  • 赋值运算符:
  • 递增/递减运算符:
  • 比较运算符:
  • 逻辑运算符:
  • 三元运算符:
    (expr1) ? (expr2) : (expr3)

5.控制语句

  • 控制语法的语句结构和其他大多数语言结构相同,有以下两类:

5.1.条件控制语句

  • if 语句 - 在条件成立时执行代码
    if…else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
    if…elseif…else 语句 - 在若干条件之一成立时执行一个代码块
    switch 语句 - 在若干条件之一成立时执行一个代码块

5.2.循环控制语句

while - 只要指定的条件成立,则循环执行代码块
do…while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
for - 循环执行代码块指定的次数
foreach - 根据数组中每个元素来循环代码块

  • break语句用于终止本次循环
    continue语句的作用是跳出本次循环,接着执行下一次循环

WEB安全之PHP基础(一):PHP基本语法格式、数据类型常量以及字符串、运算符、控制语句相关推荐

  1. Go开发 之 基础语法(数据类型、类型转换、运算符的优先级)

    文章目录 1.数据类型 1.1.数值类型 1.1.1.整型(整数类型) 1.1.2.浮点型(小数类型) 1.1.3.复数 1.2.bool类型(布尔类型) 1.3.字符串类型 1.3.1.定义字符串 ...

  2. Linux下Web服务器应用之基础简介

    Linux下Web服务器应用之基础简介 一.web服务器基本知识: WWW 是 World Wide Web 的缩写 URL:<协定>://<主机地址或主机名>[:port]/ ...

  3. 好程序员web前端分享HTML基础篇

    好程序员web前端分享HTML基础篇,最近遇到很多新手,都会问,如果要学web前端开发,需要学什么?难不难学啊?多久能入门之类的问题?那么今天好程序员就先来给大家分享一下web前端学习路线:HTML基 ...

  4. 一个Web开发的客户端基础技术测试Demo

    最近参加了一个Web开发的客户端基础技术测试,虽然对于做前台开发的程序员来说比较简单,但对于一直做后台代码编写的程序员想掌握前台开发的基础来说,应该是一个比较好的Demo.对于Web初学者来说,也是一 ...

  5. Web前端之JavaScript基础

    Web前端之JavaScript基础 JavaScript介绍 变量 变量类型 基本的数据类型Number String Boolean underfined null typeof运算符 引用的数据 ...

  6. web快速入门之基础篇-js:3_3、简易购物车

    目录 一.前言 二.js代码实例演示 1.简易购物车01_数量变化 (1)实例代码 (2)效果演示 2.简易购物车02_数量价格同步 (1)实例代码 (2)效果演示 一.前言 上一篇介绍了DHTML对 ...

  7. 2020年史上最全移动端Web整理从开发基础到实战(三)

    一.touch事件的缺陷 我们在上面<页面分类>的项目中,对 tap 事件的处理使用的是 touch 事件处理的,因为如果使用 click 事件的话,总会有延时. 但是呢,touch 事件 ...

  8. web 移动端开发基础

    web 移动端开发基础 文章目录 web 移动端开发基础 了解视口相关内容 meta 视口标签 掌握二倍图用法 物理像素 & 物理像素比 多倍图 二倍精灵图做法 了解移动端常见选择方案 掌握移 ...

  9. Java Web应用开发_04javaWeb基础

    Java Web应用开发_04javaWeb基础 4.1 XML节内小测 4.2HTTP协议 4.3 搭建开发环境 04javaWeb基础单元测验4 4.1 XML节内小测 1下列关于XML的描述中, ...

最新文章

  1. php 经纬度 摩卡 转换,WGS84经纬度坐标与WEB摩卡托坐标转换
  2. Ubuntu/Fedora高版本安装海思SDK的方法
  3. java怎么在记事本里写过运行_[置顶] 如何运行用记事本写的java程序
  4. 第十四节: 介绍四大并发集合类并结合单例模式下的队列来说明线程安全和非安全的场景及补充性能调优问题。
  5. iOS buttonWithType:101 苹果私有api
  6. 9 年前他用 1 万个比特币买两个披萨, 9 年后他把当年的代码卖给苹果, 成 GPU 挖矿之父...
  7. 倪光南:微软故意放任 Windows 盗版;淘宝为性别歧视道歉;乐视亏损 139 亿 | CSDN极客头条...
  8. 小雷:我的核心定位和远大志向(上次更新2013年11月9日)
  9. rkmedia 中的行人检测
  10. 一句话说明sync, fsync, fdatasync的区别
  11. VUzzer: Application-aware Evolutionary Fuzzing
  12. ProxmoxVE折腾记录(二)--版本升级
  13. ffmpeg的中文文档
  14. 算法与数据结构——美团、大众点评笔试题
  15. HTML5网页设计样式-基本CSS选择器
  16. 使用universalimageloader实现viewpager加载网络图片轮显
  17. 是男人,不妨试试避孕药吧!
  18. 既然选择远方,便只顾风雨兼程
  19. 支付宝微信PC端扫描支付小demo
  20. EViews计量经济学软件使用技巧(2),EViews13中文版下载安装

热门文章

  1. php 获取当前时间的方法
  2. 李亚鹏版《射雕英雄传》观后感
  3. jquery折叠菜单、jquery侧边栏菜单、CSS侧边栏菜单
  4. Lightroom Classic 2021 for mac (lrc 2021)
  5. mysql double保留两位小数_mysql数据库中计算时如何保留两位小数呢?
  6. linux如何删除创建的用户组,Linux 学习之用户,组的创建以及删除
  7. Qt获得和失去焦点事件(Focus事件)
  8. 【雅思大作文考官范文】——第二十篇: 'university subjects'
  9. 库管工作总结计算机中心,2018年库管工作总结范文
  10. 谁能从事最具幸福感的职业