下载鸥 > 网站下载 > 开发教程 > PHP

PHP常用函数大全

471 2020-12-31 01:06:49

收藏

简述

查看下方代码,学会如何调用常用函数。
本文收录了php常用函数,可查看下方代码,学会如何调用常用函数。

PHP随机图片API本地图片版,页面直接输出图片
<?php
$img_array = glob('images/*.{gif,jpg,png,jpeg,webp,bmp}', GLOB_BRACE);
if(count($img_array) == 0) die('没找到图片文件。请先上传一些图片到 '.dirname(__FILE__).'/images/ 文件夹');
header('Content-Type: image/png');
echo(file_get_contents($img_array[array_rand($img_array)]));
?>

将图片保存到images目录下,自动读取images图片并输出。

PHP随机图片API远程图片版,页面直接输出图片

<?php
$imgku=file('pic.txt');
showImg($imgku[array_rand($imgku)]);
/*
* php 页面直接输出图片
*/
function showImg($img){
$img = trim($img);
$info = getimagesize($img);
$imgExt = image_type_to_extension($info[2], false); //获取文件后缀
$fun = "imagecreatefrom{$imgExt}";
$imgInfo = $fun($img);         //1.由文件或 URL 创建一个新图象。如:imagecreatefrompng ( string $filename )
//$mime = $info['mime'];
$mime = image_type_to_mime_type(exif_imagetype($img)); //获取图片的 MIME 类型
header('Content-Type:'.$mime);
$quality = 100;
if($imgExt == 'png') $quality = 9;   //输出质量,JPEG格式(0-100),PNG格式(0-9)
$getImgInfo = "image{$imgExt}";
$getImgInfo($imgInfo, null, $quality); //2.将图像输出到浏览器或文件。如: imagepng ( resource $image )
imagedestroy($imgInfo);
}
?>

需安装GD库及exif扩展,php.ini中开启allow_url_fopen函数,读取同目录下pic.txt文件中的图片网址,每行一个图片地址。

COOKIE限制时间再次提交

if(isset($_COOKIE['submission_time'])) {
$submissionTime =   $_COOKIE['submission_time'];
$currentTime    =   time();
$timePassed     =   ($currentTime - $submissionTime ) / 60 * 60;
if($timePassed < 24 ) {
echo "<div class='alert alert-warning'>You can record the sales after 24 hours! Please wait..</div>";
die();
}
}else {
$cookieName     =   'submission_time';
$cokkieValue    =   time(); 
setcookie($cookieName, $cokkieValue, time() + (+60*60*24*30 ), "/");
}

判断字符串是否含有某分割符,若包含分割符,分割后输出全部分割后的值

if(strpos($qcont,',') === false){
echo "不包含,分割字段";
}else{
echo "包含,分割字段,下面进行切割并输出";
$qcontArr = explode(",", $qcont);
$qcontcount = count($qcontArr);
for ($i = 0; $i < $qcontcount; $i++) {
if ($qcontArr[$i] == "") {
continue;  
}
echo $qcontArr[$i];
}
}

对错误的详情进行格式化输出,记入log文件。

function slog($logs){
$toppath="log.htm";
$Ts=fopen($toppath,"a+");
fputs($Ts,$logs."rn");
fclose($Ts);
}
使用file_get_contents() 发送GET、POST请求

1、【GET请求】

$data = array( 'name'=>'zhezhao','age'=>'23');
$query = http_build_query($data); 
$url = 'http://localhost/get.php';//这里一定要写完整的服务页面地址,否则php程序不会运行 
$result = file_get_contents($url.'?'.$query);

2、【POST请求】

$data = array('user'=>'jiaxiaozi','passwd'=>'123456');
$requestBody = http_build_query($data);
$context = stream_context_create(['http' => ['method' => 'POST', 'header' => "Content-Type: application/x-www-form-urlencodedrn"."Content-Length: " . mb_strlen($requestBody), 'content' => $requestBody]]);
$response = file_get_contents('http://server.test.net/login', false, $context);
PHP获取当天是几号、周几
echo date('y').'</br>';    //当前年份
echo date('m').'</br>';    //当前月份
echo date('d').'</br>';    //当前日
echo date('s').'</br>';    //当前秒
echo date('w').'</br>';    //当前周几

打印结果显示为:

20
07
24
50
5
PHP给第三方接口POST或GET方式传输数据并得到返回值
function Post($url, $post = null)
{
$context = array();
if (is_array($post))
{
ksort($post);
$context['http'] = array
(   
'timeout'=>60,
'method' => 'POST',
'content' => http_build_query($post, '', '&'),
);
}
return file_get_contents($url, false, stream_context_create($context));
}
$data = array
(
'name' => 'test',
'email' => 'test@gmail.com',
'submit' => 'submit',
);
echo Post('http://www.baidu.com', $data);

同一页面24小时之内之只能执行一次

define('TIME_OUT', 86400); //定义重复操作最短的允许时间,单位秒
@session_start();
$time = time();
if( isset($_SESSION['time']) ){
if( $time - $_SESSION['time'] <= TIME_OUT ){
echo '<script type=text/javascript>alert("在24小时内只能执行一次!");</script>';
exit();
}
}
$_SESSION['time'] = $time;
echo "正常执行!";
PHP连接远程MSSQL函数:

已在如上环境安装后测试通过!

function mssql_user($username){
$host="远程服务器IP,MSSQL端口";
$dbname="数据库名称";
$user="数据库用户名";
$pass="数据库密码";
try {
$dbh = new PDO("sqlsrv:Server=$host;Database=$dbname", $user, $pass);
} catch(PDOException $e) {
echo $e->getMessage();
exit;
}
$stmt = $dbh->prepare("SELECT XXX FROM XXX WHERE XXX = ".$username);
$stmt->execute();
while ($row = $stmt->fetch()) {
echo $row[0];//多个查询结果输出
//return $row[0]; 单一的结果可以直接用return
}
unset($dbh); unset($stmt);
}
PHP时间戳和日期相互转换

获取当前日期时间的时间戳

echo time();

获取当前日期时间

echo date("Y/m/d H:i:s");

日期转换为时间戳

echo strtotime(date("Y/m/d"));

时间戳转换为日期

echo date('Y-m-d',time());

打印明天此时的时间戳

echo strtotime("+1 day");

当前时间:

echo date("Y-m-d H:i:s",time()) ;
指定时间:
echo date("Y-m-d H:i:s",strtotime("+1 day")) ;

下个星期此时的时间戳

echo strtotime("+1 week");

指定下星期几的PHP时间戳

echo strtotime("next Thursday");

指定下星期几的时间:

echo date("Y-m-d H:i:s",strtotime("next Thursday"));

指定上星期几的时间戳

echo strtotime("last Thursday");

指定本年的最后一个星期几的时间:

echo date("Y-m-d H:i:s",strtotime("last Thursday"));
截取指定两个字符之间的字符串

方法一

function cut($begin,$end,$str){
$b = mb_strpos($str,$begin) + mb_strlen($begin);
$e = mb_strpos($str,$end) - $b;
return mb_substr($str,$b,$e);
}

方法二

function get_between($input, $start, $end) {
$substr = substr($input, strlen($start)+strpos($input, $start),(strlen($input) - strpos($input, $end))*(-1));
return $substr;
}

方法一当截取的是值为串的时候,会出现截取不到的情况用方法二尝试。

方法三:preg_match_all函数

preg_match_all('/<Epoch>(.*)</Epoch>/', $result, $matches); 
//print_r($matches);
$resultapp = $matches[1][1];

方法一及方法二在截取长段字符串时,碰到过无法截取到的情况,用方法三解决。

调用SOHU API获取IP地址

//通过API获取IP地址
function getIP(){
$str = file_get_contents('https://pv.sohu.com/cityjson?ie=utf-8');
$ip = cut('cip": "','", "cid',$str);
if($ip){
return $ip;
}
}

注:需配合上面 截取指定两个字符之间的字符串 函数一起使用

获取访问客户端的IP地址

function get_client_ip(){
static $realip;
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}

 

本文地址:https://xzo.com.cn/develop/php/529.html

有帮助,很赞!

信息来源:精准像素
导出教程 下载word版教程
发表评论 共有条评论
关于PHP

PHP是一种服务器端、跨平台、html嵌入式的脚本语言,其功能十分强大、入门简单。在过去,民间一直有说法称“PHP是最好的编程语言”,是PHP开发者对自身所使用语言的肯定。

PHP曾是最主流的网站web开发语言之一,现在也依然十分流行。

推荐PHP开发教程
str_replace怎样一次性替换多个值(数组)?
str_replace怎样一次性替换多个值(数组)?

我们知道,str_replace是可以执行替换命令的,但一般是用于一对一替换,这个很好...

1 447
php怎样开发一个访问密码的界面防止资源被爬取?
php怎样开发一个访问密码的界面防止资源被爬取?

互联网上每天都有很多爬虫到处爬取内容,你可能不知道他们是干嘛的,但其中肯定...

1 407
当缓存文件大于4KB,不能用cookie时的替代方案就是session
当缓存文件大于4KB,不能用cookie时的替代方案就是session

鸥哥最近在开发一个项目,出于对用户隐私的保护,数据一概不能存储到数据表,而是...

1 447
PHP怎样实现从数组随机取值的效果?
PHP怎样实现从数组随机取值的效果?

在开发过程中,我们很多时候会接到猜你喜欢的随机展示效果。这个随机,用php取...

1 381
PHP函数switch()介绍
PHP函数switch()介绍

通俗的说,现在有结果A B C D E,每个结果代表不同的意义,此时我们可以用if else...

0 411
php正则提取字符串中的数字并打印输出
php正则提取字符串中的数字并打印输出

我们在网站开发的过程中经常需要处理数据,今天讲讲怎样用正则提取字符串中的...

0 441
简单的php高并发处理方案分享
简单的php高并发处理方案分享

很多互联网公司对并发要求比较高,如果完全依赖服务器性能的提升,则可能会面临...

0 405
PHP基础函数介绍:PHP_EOL
PHP基础函数介绍:PHP_EOL

PHP_EOL是一个相当好用的函数,可自动适配多种换行格式,在实际的应用中体验非...

0 522
推荐插件
帝国cms在线考试系统模板插件
帝国cms在线考试系统模板插件

一直没看到好用的帝国cms在线考试插件,所以自己开发了一款。在线考试插件用...

0 1277
帝国CMS内网用户静态站点文章访客统计插件
帝国CMS内网用户静态站点文章访客统计插件

本插件适用于内网用户,可查看单篇文章访问者ip地址。如果添加访问者ip组,可查...

0 545
帝国cms百度、必应bing、神马推送增强收录三合一插件
帝国cms百度、必应bing、神马推送增强收录三合一插件

因客户需要一键推送到多平台,下载鸥开发了这款一键推送至百度、必应、神马插...

0 183
帝国cms纳米数据接口(足球比赛中最新数据)
帝国cms纳米数据接口(足球比赛中最新数据)

帝国cms 对接纳米数据(www.nami.com)接口,本接口主要接收、整理足球比赛实时数...

0 334
帝国cms访问统计ip地址链接与封禁插件下载
帝国cms访问统计ip地址链接与封禁插件下载

下载鸥开发了这款帝国cms封禁ip插件,自动记录访问情况,让我们可以更快的识别...

0 994
帝国cms百度AI图像无损放大api接口对接插件
帝国cms百度AI图像无损放大api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像无损放大的功能。经过...

0 445
帝国cms百度AI图像清晰度增强api接口对接插件
帝国cms百度AI图像清晰度增强api接口对接插件

通过本插件,可以实现帝国cms网站对接百度云api实现图像清晰度增强的功能。经...

0 515
帝国cms自动生成文章新闻目录插件下载
帝国cms自动生成文章新闻目录插件下载

用户体验是我们的需求,百度蜘蛛的认可更是我们的需求。毕竟,没有收录排名,何来...

0 1136
客服QQ:341553759
扫码咨询 常见问题 >
官方交流群:90432500
点击加入