IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> php学习总结(2) -> 正文阅读

[PHP知识库]php学习总结(2)

一、字符串的常用方法

1.字符串获取

  • substr(string,str,len): 从字符串中获取其中的一部分
$str = "我爱我.的.祖国.png";
$s = substr(strrchr($str,'.'),1);
echo $s;
$arr = explode(".",$str);
$ext = array_pop($arr);
echo "<br>$ext<br>";
  • strstr(string,str) 查找字符串在另一个字符串中第一次出现的位置,并返回从该位置到字符串结尾的所有字符
  • strrchr(string,str): 查找字符串在另一个字符串中最后一次出现的位置,并返回从该位置到字符串结尾的所有字符

2.字符串替换

  • 字符串替换: 使用一个字符串替换字符串中的另一些字符

3.字符串计算

  • strlen(string): 取得字符串的长度
  • strpos(string,str,start): 函数用于定位字符串第一次出现的位置,返回整型。
  • strrpos(): 定位字符串最后一次出现的位置
$str = "我爱我的祖国,我的祖国是中国";
$str = str_replace("祖国","国家", $str);
echo "<br>$str<br>";

二、时间

1.php时间戳

  • 定义: UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和。
    PHP提供了内置函数 time() 来取得服务器当前时间的时间戳。
<?php
echo time();
?>
  • 格式化时间
    date() 函数用于格式化时间,返回一个字符串。
string date( string format [, int timestamp] )
  • 通过字符串转换为时间戳
    strtotime(“2021-10-20”)

三、HTTP全局数组(大写)

  • $_GET[ ]
    获取所有的get请求
<?php
echo $_REQUEST["nickname"]	//输出用户输入的称呼
echo $_REQUEST["id "];		//输出 10
?>
  • $_POST[ ]
    获取所有的post请求
<?php
echo '您的称呼是:',$_POST["nickname"]; 
?>
  • $_REQUEST[ ]
    获取所有的t请求(get和post都可以获取到)
<?php
echo $_REQUEST["nickname"]	//输出用户输入的称呼
echo $_REQUEST["id "];		//输出 10
?>

四、jsonp方法

1.json_encode

PHP json_encode() 用于对变量进行 JSON 编码,该函数如果执行成功返回 JSON 数据,否则返回 FALSE 。

语法

string json_encode ( $value  )

实例

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);//{"a":1,"b":2,"c":3,"d":4,"e":5}
?>

2.json_decode

PHP json_decode() 函数用于对 JSON 格式的字符串进行解码,并转换为 PHP 变量。

语法

mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

参数

  • json_string : 待解码的 JSON 字符串,必须是 UTF-8 编码数据
  • assoc: 当该参数为 TRUE 时,将返回数组,FALSE 时返回对象。
  • depth : 整数类型的参数,它指定递归深度
  • options : 二进制掩码,目前只支持 JSON_BIGINT_AS_STRING 。

实例

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
   //结果
   object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}
?>

五、header方法

返回json格式

header("Content-type: application/json");

返回html格式指定编码是utf-8

header("Content-type: text/html;charset=utf-8");

六、sesson概述

PHP session 解决了这个问题,它通过在服务器上存储用户信息以便随后使用(比如用户名称、购买商品等)。然而,会话信息是临时的,在用户离开网站后将被删除。如果您需要永久存储信息,可以把数据存储在数据库中。

Session 的工作机制是:为每个访客创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,或者通过 URL 进行传导

session 是一种客户与网站(服务器)更为安全的对话方式。一旦开启了 session 会话,便可以在网站的任何页面使用(保持)这个会话,从而让访问者与网站之间建立了一种“对话”机制。

session 会话会为每一个开启了 session 会话的访问者建立一个唯一的会话 ID ,用于识别用户。该会话 ID 可能存储于用户电脑的 cookie 内,也可能通过 URL 来传递。而对应的具体 session 值会存储于服务器端,这也是与 cookie 的主要区别,并且安全性相对较高。

创建sesson

要创建 session ,必须先使用 session_start() 函数开启一个 session 会话,系统会分配一个会话 ID:

<?php
session_start();
?>

读取sesson

PHP 内置的 $_SESSION 变量可以很方便的访问设置的 session 变量。

<?php
// 检索 session 数据
echo "浏览量:". $_SESSION['views'];
?>

销毁sesson

 <?php
 //删除某些数据
 	session_start();
   if(isset($_SESSION['views']))
   {
       unset($_SESSION['views']);
   }
   //永久删除数据
    session_destroy();
    ?>

七、isset() 检测变量是否存在

PHP isset() 用于检测一个或多个变量是否设置,如果被检测的变量存在则返回 TRUE,否则返回 FALSE。
语法

bool isset( mixed var [, mixed var [, ...]] )

例子

$var = 1;
if(isset($var)){
    echo '变量 $var 已经被设置';
} else {
    echo '变量 $var 还未被设置';
}

//结果
//变量 $var 已经被设置

注意

  • isset() 只能用于检测变量,传递任何其它参数都将造成解析错误。
  • isset() 是一个语言结构而非函数,因此它无法被变量函数调用。

八、php表单

PHP 预定义了 $_POST 和 $_GET 变量来接收表单信息。

HTML表单验证

表单用于收集客户的输入信息时,不要想当然的以为客户会按照设想中的输入符合规定的内容。任何时刻都要对客户的输入做严格检查。

<body>
<form name="commentform" method="post" action="comment.php">
<p>
称呼: <input type="text" name="nickname" />
</p>
<input type="submit" value="提 交" />
</form>
</body>

客户端验证

客户端表单验证一般是基于 Javascript 脚本的验证方式,这种验证方式能有效减少服务器的负担,也能即时提醒客户输入的错误之处。

服务器端验证

在某些情况下,除了进行客户端的验证外,可能还需要进行服务器端的验证(如访问数据库)。这时候需要在 PHP 程序里做好逻辑上的验证。关于服务器端验证

九、验证码

创建图片

$image = imagecreatetruecolor(,);

创建图片颜色

$bg = imagecolorallocate(图片,R,G,B);
// RGB是0-255的取值

$bg = imagecolorallocate($image,255,255,255);
// 创建白色的背景

图片区域填充

imagefill(图片,x,y,颜色)

imagefill($image,0,0,$bgcolor);

内容生成

$data='abcdefghijkmnpqrstuvwxy3456789';
$f=substr($data,rand(0,strlen($data)),1);
从data中随机取出一个字符串

图片上绘制字符

 imagestring(图片,字体大小,x,y,字符,字符颜色)

session存储

$_SESSION["code"] = $code;

完整代码

//必须至于顶部,多服务器端记录验证码信息,便于用户输入后做校验
      session_start();
  
     //默认返回的是黑色的照片
     $image = imagecreatetruecolor(100, 30);
     //将背景设置为白色的
     $bgcolor = imagecolorallocate($image, 255, 255, 255);
     //将白色铺满地图
     imagefill($image, 0, 0, $bgcolor);
  
     //空字符串,每循环一次,追加到字符串后面  
     $captch_code='';
  
    //验证码为随机四个数字
     for ($i=0; $i < 4; $i++) { 
         $fontsize=6;
         $fontcolor=imagecolorallocate($image,rand(0,120),rand(0,120),rand(0,120));
         
         //产生随机数字0-9
         $fontcontent = rand(0,9);
         $captch_code.= $fontcontent;
        //数字的位置,0,0是左上角。不能重合显示不完全
         $x=($i*100/4)+rand(5,10);
         $y=rand(5,10);
          imagestring($image,$fontsize,$x,$y,$fontcontent,$fontcolor);
     }
       
  
   
    $_SESSION['authcode'] = $captch_code;
 //为验证码增加干扰元素,控制好颜色,
 //点   
     for ($i=0; $i < 200; $i++) { 
         $pointcolor = imagecolorallocate($image,rand(50,200),rand(50,200),rand(50,200));
         imagesetpixel($image, rand(1,99), rand(1,29), $pointcolor);
     }
  
 //为验证码增加干扰元素
 //线   
     for ($i=0; $i < 3; $i++) { 
         $linecolor = imagecolorallocate($image,rand(80,220),rand(80,220),rand(80,220));
         imageline($image, rand(1,99), rand(1,29),rand(1,99), rand(1,29) ,$linecolor);
     }
  
     header('content-type:image/png');
     imagepng($image);
   
     //销毁
    imagedestroy($image);

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-10-25 12:21:21  更:2021-10-25 12:21:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:11:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码