首页
VIP观影
美女套图
留言板
好友导航
推荐
影视在线
IDC销售
常用工具
高清壁纸
娱乐直播
Search
1
关于【套图】贡献者说明
6,596 阅读
2
利用CSS改变图片显示风格的方法 filter
3,706 阅读
3
女神朴信惠(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤
3,031 阅读
4
WJSSK_myfriend 我的好友(导航插件) 相关说明
1,636 阅读
5
随机小姐姐跳舞视频(6362个),源码分享
1,320 阅读
随笔
技术源码
Typecho
php
Vue
微信
资源分享
Happy 分享
好看的电影
好看的电视剧
登录
/
注册
Search
标签搜索
php
IDC
智简魔方
财务系统
主题
vue
Easypanel
centos
typecho
mqtt
宝塔bt
typecho插件
函数
云服务器
Kangle
docker
JavaScript
mosquitto
mosquitto-cluster
mosquitto-auth-plug
登录
Or
注册
累计撰写
128
篇文章
累计收到
250
条评论
首页
栏目
随笔
技术源码
Typecho
php
Vue
微信
资源分享
Happy 分享
好看的电影
好看的电视剧
页面
VIP观影
美女套图
留言板
好友导航
推荐
影视在线
IDC销售
常用工具
高清壁纸
娱乐直播
搜索到
7
篇与
php
的结果
2023-03-17
php 页面固定时间内访问输出304
{dotted startColor="#ff6c6c" endColor="#1989fa"/}{mtitle title="来自ChatGPT的回答"/}要实现固定时间内访问输出304,需要使用HTTP缓存机制。具体步骤如下:设置响应头:在PHP脚本的开头使用header()函数设置响应头,包括Cache-Control、Expires和Last-Modified等字段。判断是否需要更新:在每次请求时,先判断客户端是否已经缓存了该资源,如果已经缓存,则比较客户端缓存的Last-Mod> ified时间和服务器端的Last-Modified时间是否一致,如果一致,则输出304 Not Modified响应,否则输出新的资源>> 内容和新的Last-Modified时间。下面是示例代码:// 设置响应头 header('Cache-Control: max-age=3600, public'); header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 3600) . ' GMT'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($filename)) . ' GMT'); // 判断是否需要更新 if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])) { $last_modified_time = strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']); $current_modified_time = filemtime($filename); if ($last_modified_time == $current_modified_time) { // 输出304 Not Modified响应 header('HTTP/1.1 304 Not Modified'); exit; } } // 输出新的资源内容 readfile($filename);在上面的代码中,设置了Cache-Control、Expires和Last-Modified等响应头字段,用于控制缓存的过期时间和缓存的有效性。在判断是否需要更新时,使用了HTTP请求头中的If-Modified-Since字段,用于比较客户端缓存的Last-Modified时间和服务器端的Last-Modified时间是否一致。如果一致,则输出304 Not Modified响应,否则输出新的资源内容和新的Last-Modified时间。
2023年03月17日
48 阅读
0 评论
0 点赞
2022-12-29
php首字母改大写,php实现字符串首字母转换成大写的方法
php中可以通过ucfirst函数将一个字符串中的第一个字母转换成大写,而ucwords函数可以将一个字符串中每个单词的首字母转换成大写。示例<?php $string = "wjssk,when i think of you."; $sentence = ucfirst($string); $title = ucwords($string); print("$sentence\n"); print("$title\n"); print("\n"); ?>输出Wjssk,when i think of you. Wjssk,When I Think Of You.
2022年12月29日
55 阅读
0 评论
1 点赞
2022-11-29
kangle+easypanel API接口说明
记录一下写魔方财务Ep支持接口的时候,用到的easypanel的api接口。API接口请求地址url:http://服务器IP地址(或域名):3312/api/index.phpAPI接口权限验证(查看easypanel信息,包含kangle信息)接口参数:c : (control)表示哪个控制文件(目前有whm,cdn)a : (action)表示哪个方法,以下介绍r : 随机数s : 秘钥,通过md5(a + skey +r)得到,如a=add,skey=test,r=888,则s=md5(addtest888),其中skey是服务器安全码测试获取信息:http://127.0.0.1:3312/api/index.php?c=whm&a=info&r=888&s=8e4fc6f181bedf11c64bac3bf341ca6a成功结果为{"result":200}新增主机(add_vh)接口参数:c=whma=add_vhr=(随机)s=(md5密钥)init=1 ?表示创建一个name=主机名称 ?网站账号,数据库账号,ftp账号同步passwd=主机密码 ?网站密码,数据库密码,ftp密码同步(只创建时同步)以下为可选参数(用于发送空间的一些参数,如网页大小,数据库大小,有三种方式,第一种是发送产品ID,第二种是发送产品名称,最后一种是发送详细的参数);第一种:发送产品IDproduct_id=easypanel里的产品ID例如:http://www.kanglesoft.com:3312/api/?c=whm&a=add_vh&r=3333&s=sdfasdfsadfddaffsdf3&name=webtest&passwd=webpasswd&init=1&product_id=1第二种:发送产品名称product_name=easypanel里的产品名称例如:http://www.kanglesoft.com:3312/api/?c=whm&a=add_vh&r=3333&s=sdfasdfsadfddaffsdf3&name=webtest&passwd=webpasswd&init=1&product_id=wjssk第三种:发送详细的参数:cdn:是否为CDN空间,是则发送1Templete:语言(html|php|iis)subtemplete:语言引擎,php52|php53|php5217web_quota:网页空间大小,数字db_quota:数据库大小,数字db_type:数据库类型,mysql|sqlsrvsubdir_flag:是否允许绑定子目录,1为是Subdir:默认绑定目录,可为空,例:wwwrootmax_subdir:最多子目录数domain:需要绑定的域名,可空,默认会绑定到subdir指定的目录下。ftp:是否开启ftp,1为是ftp_connect:ftp最多连接数ftp_usl:ftp上传速度限制,单位kbftp_dsl:ftp下载限制。单位kbaccess:是否启用自定义控制,如果是请输入自定义控制文件名access.xmlspeed_limit:带宽限制,数字型,默认为不限log_handle:是否开启日志析分功能,1为是flow_limit:流量限制,数字型,默认不限成功结果为{"result":200}查看主机信息(getVh)接口参数:c=whma=getVhr=(随机)s=(md5密钥)name=主机名称成功结果为{"result":200}返回参数说明:name: 主机名称doc_root: 主机的主目录uid: 系统生成(用户在服务器上的账户ID),权限控制使用。不可更改。gid: 系统账户组IDmodule: 是属于哪个模块,目前有php和iis两个模块。create_time:创建时间expire_time2: 过期时间status: 站点状态,0正常,1为关闭。subdir_flag: 是否允许子域名,1为允许,0为不允许subdir: 默认子目录名称web_quota: 空间大小db_quota: 数据库大小domain: 允许绑定域名数量 -1为不限max_connect: 最多连接数max_worker: 最多工作者ftp: 是否开通ftp,1为开通,0为不开通db_name: 数据库名称(一般和主机名称等同,sql server特殊)
2022年11月29日
92 阅读
0 评论
0 点赞
2022-11-07
PHP采集框架QueryLIst:rules(array $rules) 说明
设置DOM解析规则。当没有设置range()时称为多元素DOM解析,设置了range()后称为列表DOM解析。DOM解析规则格式//DOM解析规则 $rules = array( '规则名' => array('jQuery选择器','要DOM解析的属性'[,"标签过滤列表"][,"回调函数"]), '规则名2' => array('jQuery选择器','要DOM解析的属性'[,"标签过滤列表"][,"回调函数"]), .......... ); //注:方括号括起来的参数可选规则解释字段类型必填注释规则名string是任意不重复字符串jQuery选择器string是要选择的元素选择器要DOM解析的属性string是任意html元素属性标签过滤列表string否设置要过滤的内容回调函数Closure否用于对数据做额外处理规则字段解释1.要DOM解析的属性值为以下几种:text:返回当前选中标签下面的纯文本html:返回当前选中标签下面的html片段htmlOuter:返回当前选中的标签的外部html片段 (V4.2.0新增)texts:返回当前选中的多个标签下面的纯文本 (V4.2.0新增)htmls:返回当前选中的多个标签下面的html片段 (V4.2.0新增)htmlOuters:返回当前选中的多个标签的外部html片段 (V4.2.0新增)attr(HTML标签属性): 获取标签属性值,如src、href、name、data-src等任意HTML标签属性名,支持通配符*匹配标签所有属性 (V4.2.5新增)attrs(HTML标签属性): 返回当前选中的多个标签的属性值 (V4.2.5新增)2.标签过滤列表设置此选项可用来过滤不想要的内容,多个值之间用空格隔开,有如下2条规则:当标签名前面添加减号(-)时(此时标签可以为任意的jQuery选择器),表示移除该标签以及标签内容。当标签名前面没有减号(-)时,当 [要DOM解析的属性] 值为text时表示需要保留的HTML标签以及内容,为html时表示要过滤掉的HTML标签但保留内容。
2022年11月07日
85 阅读
0 评论
0 点赞
2022-10-26
PHP中“??”和“?:”的区别
PHP 7添加了新的运算符双问号(??)运算符。在PHP 7中,双问号(??)运算符称为Null合并运算符。??如果它存在且不为NULL,则返回其第一个操作数;否则返回第一个操作数。否则,返回其第二个操作数。从左到右评估。Null合并运算符也可以链形式使用。例如:$a = null; var_dump($a??1); #输出1 $a = 0; var_dump($a??1); #输出0 // 如果是空字符串,输出也是空字符串?:如果第一个操作数为空字符串,0,null,false等,则输出的是第二个操作数,否则返回第一个操作数;例如:$a = null; var_dump($a?:1); #输出1 $a = 0; var_dump($a?:1); #输出1 // 如果是空字符串,输出也是空字符串
2022年10月26日
103 阅读
0 评论
0 点赞
2022-09-01
php 获取链接URL的顶级域名
有的时候做接口权限的时候需要判断来源是否有效,就可以用到这个函数/** * 获取顶级域名 * * @param string $url 域名 HOST,如:www.wjssk.cn ,www.baidu.com * @return string 顶级域名 如:wjssk.cn ,baidu.com */ function url_root($url=""){ $url = $url ? $url : $_SERVER["HTTP_HOST"]; $dual_host = array('aaa.pro','ac.cn','ac.kr','ac.mu','aca.pro','acct.pro','ae.org','ah.cn','ar.com','avocat.pro','bar.pro','biz.ki','biz.pl','bj.cn','br.com','busan.kr','chungbuk.kr','chungnam.kr','club.tw','cn.com','co.ag','co.am','co.at','co.bz','co.cm','co.com','co.gg','co.gl','co.gy','co.il','co.im','co.in','co.je','co.kr','co.lc','co.mg','co.ms','co.mu','co.nl','co.nz','co.uk','co.ve','co.za','com.af','com.ag','com.am','com.ar','com.au','com.br','com.bz','com.cm','com.cn','com.co','com.de','com.ec','com.es','com.gl','com.gr','com.gy','com.hn','com.ht','com.im','com.ki','com.lc','com.lv','com.mg','com.ms','com.mu','com.mx','com.nf','com.pe','com.ph','com.pk','com.pl','com.ps','com.pt','com.ro','com.ru','com.sb','com.sc','com.se','com.sg','com.so','com.tw','com.vc','com.ve','cpa.pro','cq.cn','daegu.kr','daejeon.kr','de.com','ebiz.tw','edu.cn','edu.gl','eng.pro','es.kr','eu.com','fin.ec','firm.in','fj.cn','game.tw','gangwon.kr','gb.com','gb.net','gd.cn','gen.in','go.kr','gov.cn','gr.com','gs.cn','gwangju.kr','gx.cn','gyeongbuk.kr','gyeonggi.kr','gyeongnam.kr','gz.cn','ha.cn','hb.cn','he.cn','hi.cn','hk.cn','hl.cn','hn.cn','hs.kr','hu.com','hu.net','idv.tw','in.net','incheon.kr','ind.in','info.ec','info.ht','info.ki','info.nf','info.pl','info.ve','jeju.kr','jeonbuk.kr','jeonnam.kr','jl.cn','jp.net','jpn.com','js.cn','jur.pro','jx.cn','kg.kr','kiwi.nz','kr.com','law.pro','ln.cn','me.uk','med.ec','med.pro','mex.com','mo.cn','ms.kr','ne.kr','net.af','net.ag','net.am','net.br','net.bz','net.cm','net.cn','net.co','net.ec','net.gg','net.gl','net.gr','net.gy','net.hn','net.ht','net.im','net.in','net.je','net.ki','net.lc','net.lv','net.mg','net.mu','net.my','net.nf','net.nz','net.ph','net.pk','net.pl','net.ps','net.ru','net.sb','net.sc','net.so','net.vc','net.ve','nm.cn','no.com','nom.ag','nom.co','nom.es','nom.ro','nx.cn','or.at','or.jp','or.kr','or.mu','org.af','org.ag','org.am','org.bz','org.cn','org.es','org.gg','org.gl','org.gr','org.hn','org.ht','org.il','org.im','org.in','org.je','org.ki','org.lc','org.lv','org.mg','org.ms','org.mu','org.my','org.nz','org.pk','org.pl','org.ps','org.ro','org.ru','org.sb','org.sc','org.so','org.uk','org.vc','org.ve','pe.kr','pro.ec','qc.com','qh.cn','radio.am','radio.fm','re.kr','recht.pro','ru.com','sa.com','sc.cn','sc.kr','sd.cn','se.com','senet','seoul.kr','sh.cn','sn.cn','sx.cn','tj.cn','tw.cn','uk.com','uk.net','ulsan.kr','us.com','us.org','uy.com','web.ve','xj.cn','xz.cn','yn.cn','za.com','zj.cn'); $url_arr = explode(".", $url); if (count($url_arr) <= 2) { $host = $url; } else { $last = array_pop($url_arr); $last_1 = array_pop($url_arr); $last_2 = array_pop($url_arr); $host = $last_1.'.'.$last; if (in_array($host, $dual_host)) { $host = $last_2.'.'.$last_1.'.'.$last; } } return $host; }
2022年09月01日
68 阅读
0 评论
0 点赞
2022-08-31
php7.2没问题但php7.4报错:Trying to access array offset on value of type null
一、说明报错原因:访问类型为 null 的值的 数组下标7.2中是没问题的,7.4中对语法规范性更为严谨二、原因原文:Trying to use values of type null, bool, int, float or resource as an array (such as $null["key"]) will now generate a notice.翻译:尝试将 null,bool,int,float 或 resource 类型的值用作数组 ( 例如 $null["key"] ) 会产生一个通知。传送门: https://www.php.net/manual/en/migration74.incompatible.php ,截图如下:三、解决# php7.4错误代码 $b = NULL; $a = $b['key'] ? $b['key'] : 0; # 修改后正确代码 $b = NULL; $a = isset($b['key']) && !empty($b['key']) ? $b : 0;
2022年08月31日
102 阅读
0 评论
0 点赞