一、字符串的常用方法
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全局数组(大写)
<?php
echo $_REQUEST["nickname"]
echo $_REQUEST["id "];
?>
<?php
echo '您的称呼是:',$_POST["nickname"];
?>
- $_REQUEST[ ]
获取所有的t请求(get和post都可以获取到)
<?php
echo $_REQUEST["nickname"]
echo $_REQUEST["id "];
?>
四、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);
?>
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)
["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
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 还未被设置';
}
注意
- 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);
$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));
$fontcontent = rand(0,9);
$captch_code.= $fontcontent;
$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);
|