php常用操作
Easul Lv6

PHP的常用命令行操作

  • PHP开启一个http服务器
    BASH
    1
    2
    # 在项目根目录运行即可
    php -S localhost:8000

使用代码生成验证码

直接在HTML的标签中引用即可输出验证码

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
// 开启session
session_start();
// 定义验证码长度
define("CAPTCHA_NUMCHARS", 4);
// 用于存储验证码字符串到服务器
$_SESSION['verifyCode']="";
$passPhrase = "";

// 随机生成字母添加至验证码
for ($i = 0; $i < CAPTCHA_NUMCHARS; $i++) {
$passPhrase .= chr(rand(97, 122));
}
$_SESSION['verifyCode']=$passPhrase;

// 生成验证码图像
// 验证码宽度
define("CAPTCHA_WIDTH", 250);
// 验证码高度
define("CAPTCHA_HEIGHT", 100);
// 创建空白画布
$img = imagecreatetruecolor(CAPTCHA_WIDTH, CAPTCHA_HEIGHT);
// 设置主题颜色
// 白色背景
$bgColor = imagecolorallocate($img, 57, 61, 73);
// 黑色字体
$textColor = imagecolorallocate($img, 255, 255, 255);
// 线条颜色
$graphicColor = imagecolorallocate($img, 255, 87, 34);
// 填充背景
imagefilledrectangle($img, 0, 0, CAPTCHA_WIDTH, CAPTCHA_HEIGHT, $bgColor);
// 绘制随机直线
for ($i = 0; $i < 10; $i++) {
imageline($img, 0, rand() % CAPTCHA_HEIGHT, CAPTCHA_WIDTH, rand() % CAPTCHA_HEIGHT, $graphicColor);
}
// 绘制随机点
for ($i = 0; $i < 20; $i++) {
imagefilledellipse($img, rand() % CAPTCHA_WIDTH, rand() % CAPTCHA_HEIGHT, 10, 10, $graphicColor);
}
// 绘制验证码
// 使用的字体放在这个生成验证码路径下的font/ALGER.TTF。字体可以随便下个别的
// 也可以从下边下载
imagettftext($img, 60, 0, 20, CAPTCHA_HEIGHT - 20, $textColor, "font/ALGER.TTF", $passPhrase);
// 设置作为PNG图像输出
header("Content-type: image/png");
imagepng($img);
// 从内存从撤销图像
imagedestroy($img);
?>

该文件所用字体

动态属性

PHP
1
2
3
4
5
6
7
8
9
<?php
// 动态属性支持创建了对象之后还可以赋予该对象属性
$myClass = new MyClass();curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
$myClass->myNewProp = 1;
echo $myClass;
// 不需要的时候,可以用unset删除
unset($myClass->myNewProp);
?>

常用方法

服务器

YAML
1
2
3
4
5
isset(): 判断是否设置某request项,isset($_GET['language'])
unset(): 用于销毁变量
gethostbyname(): 获取服务器IP
session_start(): 服务端开启session
session_id(): 随机生成sessionid

参数

YAML
1
2
3
4
$_SESSION['']: 获取session数据
$_GET['']: 获取get数据
$_POST['']: 获取post数据
$_REQUEST['']: 直接获取GET或POST获取数据

输出

YAML
1
2
echo: 输出字符串
var_dump(): 输出数据及其类型

字符串

YAML
1
2
3
4
5
6
7
8
9
10
str_replace(): 用于替换字符串
substr_count(): 查看某串中子串出现次数
stripos(): 定位子串第一次出现位置
stristr(): 搜索字符串在另一个字符串第一次出现位置
strlen(): 获取字符串长度
substr(): 获取子串
iconv(): 转换字符串字符集
trim(): 取消两边的空格
explode(): 使用一个字符串分割另一个字符串
htmlspecialchars(): 原样输出html字符,如<div></div>不会解析,而是原样输出

数组

YAML
1
2
3
4
5
array_push(): 给数组添加新元素
is_array(): 判断是否是数组
count(): 获取数组长度
in_array(): 查看元素是否在数组中
array_rand(): 返回数组中的随机值

编码

YAML
1
2
3
4
5
6
base64_decode(): 从base64解码字符串
base64_encode(): 编码字符串为base64
json_encode(): 数组转json
json_decode(json, true): json转数组
urldecode(): url解码。
urlencode(): url编码

时间

YAML
1
2
3
time(): 获取unix时间
date(): 获取年月日时分秒,date("Y-m-d H:m:s")
microtime(): 获取毫秒级unix时间

文件引用

YAML
1
2
require 'xxx': 头部引用
include_once(''): 引用一次

其他

YAML
1
2
3
rand(0, 1): 获取范围内的随机整数
empty(): 判断数据是否为空
define(): 定义全局常量,使用时不需要加$符号
 评论