首页
VIP观影
美女套图
留言板
好友导航
推荐
影视在线
IDC销售
常用工具
高清壁纸
娱乐直播
Search
1
关于【套图】贡献者说明
6,600 阅读
2
利用CSS改变图片显示风格的方法 filter
3,706 阅读
3
女神朴信惠(๑′ᴗ‵๑)I Lᵒᵛᵉᵧₒᵤ❤
3,036 阅读
4
WJSSK_myfriend 我的好友(导航插件) 相关说明
1,638 阅读
5
随机小姐姐跳舞视频(6362个),源码分享
1,329 阅读
随笔
技术源码
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
篇文章
累计收到
392
条评论
首页
栏目
随笔
技术源码
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 点赞
2023-03-15
php限制文件下载速度的代码
有时候你会出于某种目的而要求把下载文件的速度放慢一些,例如你想实现文件下载进度条功能。限制下载速度最大的好处>是节省带宽,避免瞬时流量过大而造成网络堵塞。本文将和你分享如何通过php代码来实现限制文件的下载速度。首先来看看利用php限制文件下载速度的代码:<?php // 将发送到客户端的本地文件 $local_file='abc.zip'; // 文件名 $download_file='your-download-name.zip'; // 设置下载速率(=> 31.2 kb/s) $download_rate=31.2; if(file_exists($local_file)&&is_file($local_file)){ header('Cache-control: private');// 发送 headers header('Content-Type: application/octet-stream'); header('Content-Length: '.filesize($local_file)); header('Content-Disposition: filename='.$download_file); flush();// 刷新内容 $file=fopen($local_file,"r"); while (!feof($file)){ print fread($file,round($download_rate*1024));// 发送当前部分文件给浏览者 flush();// flush 内容输出到浏览器端 sleep(1);// 终端1秒后继续 } fclose($file);// 关闭文件流 }else{ die('Error: 文件 '.$local_file.' 不存在!'); } 下面对以上代码做一些分析:把文件下载速度限制为31.2kb/s,即每秒仅向客户端发送20.5kb的文件流,直到发送完整个文件为止。如果没有该限制,那么文件将以流的形式一起发送到客户端,有多少发送多少,这会出现什么情况?假如文件大小为2m,那么一下子把2m的数据流传送过去,这将可能导致网络堵塞而中断脚本的执行,这种下载方式是不能在实际应用中采用的。技术方面,首先添加头文件,声明Content-Type为application/octet-stream,表示该请求将以流的方式发送,并且声明Content-Length,即声明了文件流的大小。在代码里使用了flush(),flush函数作用是刷新php程序的缓冲,实现print动态输出。另外提醒一下的是:巧妙利用上述代码,还可以实现客户端显示文件下载进度条的功能,有兴趣的朋友可以试试,这里就不多写了。以上就实现了php限制文件下载速度的功能,希望本文所述对大家的php程序设计有所帮助。
2023年03月15日
45 阅读
0 评论
1 点赞
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 点赞
2022-06-29
PHP中ob_start()函数的说明和用法
ob_start()函数用于打开缓冲区,比如header()函数之前如果就有输出,包括回车/空格/换行/都会有"Header had all ready send by"的错误,这时可以先用ob_start()打开缓冲区PHP代码的数据块和echo()输出都会进入缓冲区而不会立刻输出.当然打开缓冲区的作用很多,只要发挥你的想象.可以总结以下四点:{dotted startColor="#ff6c6c" endColor="#1989fa"/}1. 用于header()之前<?php ob_start(); //打开缓冲区 echo /"Hellon/"; //输出 header("location:index.php"); //把浏览器重定向到index.php ob_end_flush();//输出全部内容到浏览器 ?>2. phpinfo()函数可获取客户端和服务器端的信息,但要保存客户端信息用缓冲区的方法是最好的选择.<?php ob_start(); //打开缓冲区 phpinfo(); //使用phpinfo函数 $info=ob_get_contents(); //得到缓冲区的内容并且赋值给$info $file=fopen(/'info.txt/',/'w/'); //打开文件info.txt fwrite($file,$info); //写入信息到info.txt fclose($file); //关闭文件info.txt ?>3. 静态页面技术<?php ob_start();//打开缓冲区 php页面的全部输出 $content = ob_get_contents();//取得php页面输出的全部内容 $fp = fopen("output00001.html", "w"); //创建一个文件,并打开,准备写入 fwrite($fp, $content); //把php页面的内容全部写入output00001.html,然后…… fclose($fp); ?>4. 输出代码<?php Function run_code($code) { If($code) { ob_start(); eval($code); $contents = ob_get_contents(); ob_end_clean(); }else { echo "错误!没有输出"; exit(); } return $contents; } ?>{mtitle title="以上都是摘取来的"/}
2022年06月29日
47 阅读
0 评论
0 点赞
2022-04-19
PHP header 的7种用法(转)
1.跳转页面header('Location:'.$url); //Location和":"之间无空格。 exit(); # 我自己测试过,最好加上这个结束一下!!2.声明content-typeheader('content-type:text/html;charset=utf-8');3.返回response状态码header('HTTP/1.1 404 Not Found');4.在某个时间后执行跳转header('Refresh: 10; url=http://www.baidu.com/'); //10s后跳转。5.控制浏览器缓存header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache");6.执行http验证header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Basic realm="Top Secret"');7.执行下载操作header('Content-Type: application/octet-stream'); //设置内容类型 header('Content-Disposition: attachment; filename="example.zip"'); //设置MIME用户作为附件 header('Content-Transfer-Encoding: binary'); //设置传输方式 header('Content-Length: '.filesize('example.zip')); //设置内容长度
2022年04月19日
75 阅读
0 评论
0 点赞
2021-11-30
PHP 通过图片链接地址,用自己的域名显示图片
很多时候,采集一些内容的时候,都会采集到图片。想把图片存在服务器上吧,空间不太够,不存吧,通过图片人家就能看错,你这内容是哪里来的。反正这是我的一些想法。其实我最想表达的是,如何用自己的域名显示别人的图片!是不是很直观,不保证全部有用。但是应该会有和我一样想法的人吧。但是我这个方法有个缺陷。无法缓存,如果有大佬知道如何怎么解决。麻烦请告诉我。谢谢!说明我一般是先把源图片地址保存到数据库。然后通过自己的域名访问我们写好的页面调用这个图片。当然这个图片要是你能访问的,如果的墙外的图片链接,那请把你的代码也存放到国外服务器。代码说明{tabs}{tabs-pane label="方案一"}{callout color="#df80f9"}这是最简单的方法,直接用php的自带的函数file_get_contents(){/callout}// 请一定要加这个,不然显示不出来 header("Content-Type: image/jpeg;text/html; charset=utf-8"); $img = file_get_contents('你要显示的图片地址'); echo $img; exit();{/tabs-pane}{tabs-pane label="方案二"}// 请一定要加这个,不然显示不出来 header("Content-Type: image/jpeg;text/html; charset=utf-8"); @ob_end_clean(); @readfile($res['src']); @flush(); @ob_flush(); exit();{/tabs-pane}{tabs-pane label="方案三"}// 请一定要加这个,不然显示不出来 function _curl($url, $referurl = 'https://www.baidu.com/') { $ch = curl_init(); $header = array( 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9', 'Accept-Encoding: gzip, deflate, br', 'Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-US;q=0.7', 'Connection: keep-alive', 'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="90", "Google Chrome";v="90"', 'sec-ch-ua-mobile: ?0', 'Sec-Fetch-Dest: document', 'Sec-Fetch-Mode: navigate', 'Sec-Fetch-Site: none', 'Sec-Fetch-User: ?1', 'Upgrade-Insecure-Requests: 1', 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36' ); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_URL, $url); //要抓取的网址 curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer curl_setopt($ch, CURLOPT_TIMEOUT, 10); // 设置超时限制防止死循环 curl_setopt($ch, CURLOPT_HEADER, 0); // 查询显示返回的Header区域内容 curl_setopt($ch, CURLOPT_REFERER, $referurl); //模拟来源网址 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36"); //$useragent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.72 Safari/537.36"; //curl_setopt($ch, CURLOPT_USERAGENT, $useragent); //模拟常用浏览器的useragent $page_content = curl_exec($ch); curl_close($ch); return $page_content; } header("Content-Type: image/jpeg;text/html; charset=utf-8"); $referurl = parse_url($res['src']); $referurl = $referurl['scheme'] . '://' . $referurl['host'] . ($referurl['port'] ? ':' . $referurl['port'] : '') . '/'; $img = _curl($res['src'], $referurl); echo $img; exit();{/tabs-pane}{/tabs}{dotted startColor="#ff6c6c" endColor="#1989fa"/}{mtitle title="找个图片地址试一下吧"/} 试一下 方案一显示方案二显示方案三显示 $('#btn_for_test').on('click',function(){ let img_src = $('#test').val(); if(img_src == ''){ Qmsg.warning('请输入图片地址!'); return false; } $.post('https://api.wjssk.ga/imgrec',{img_src},function(res){ if(res.code){ $('#show_test_1').attr('src','https://api.iiask.ga/imgrec/show_img/type/1/id/'+res.data.img_id); $('#show_test_1').parent().attr('href','https://api.iiask.ga/imgrec/show_img/type/1/id/'+res.data.img_id); $('#show_test_2').attr('src','https://api.iiask.ga/imgrec/show_img/type/2/id/'+res.data.img_id); $('#show_test_2').parent().attr('href','https://api.iiask.ga/imgrec/show_img/type/1/id/'+res.data.img_id); $('#show_test_3').attr('src','https://api.iiask.ga/imgrec/show_img/type/3/id/'+res.data.img_id); $('#show_test_3').parent().attr('href','https://api.iiask.ga/imgrec/show_img/type/1/id/'+res.data.img_id); } },'json'); })
2021年11月30日
77 阅读
0 评论
0 点赞