首页
关于
Search
1
Fastadmin 美化后台样式
310,894 阅读
2
关于破解移动宽带光猫 型号: GS3101 超级管理员密码
26,919 阅读
3
给Thinkphp3用上composer
19,965 阅读
4
Wallpaper完美壁纸修复天气bug(无需申请API)
19,750 阅读
5
PECL无法安装时手动编译安装PHP扩展
19,607 阅读
Linux
Mysql
PHP
Nginx
归档
Android
Python
IOS
浴室沉思
C++
CCF CSP认证
Windows
C#
前端
登录
Search
标签搜索
php
git
Windows
wkhtmltopdf
短信
defense
API
Google Photos
python
wkhtmltoimage
网页快照
linux
ssr
https
mail
sms
小程序
封装
ComoBox
拼多多
Guooo
累计撰写
126
篇文章
累计收到
81
条评论
首页
栏目
Linux
Mysql
PHP
Nginx
归档
Android
Python
IOS
浴室沉思
C++
CCF CSP认证
Windows
C#
前端
页面
关于
搜索到
53
篇与
的结果
2020-08-19
wkhtmltopdf中文不显示或者乱码问题
打开windows目录c:\Windows\fonts\simsun.ttc拷贝到 linux 服务器/usr/share/fonts/目录下,再次生成pdf中文显示正常点击下载SIMSUN.TTC
2020年08月19日
5,018 阅读
0 评论
0 点赞
2020-06-16
简单的身份证号码计算方法
function checkIDCard($idcard){ // 只能是18位 if(strlen($idcard)!=18){ return false; } // 取出本体码 $idcard_base = substr($idcard, 0, 17); // 取出校验码 $verify_code = substr($idcard, 17, 1); // 加权因子 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); // 校验码对应值 $verify_code_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); // 根据前17位计算校验码 $total = 0; for($i=0; $i<17; $i++){ $total += substr($idcard_base, $i, 1)*$factor[$i]; } // 取模 $mod = $total % 11; // 比较校验码 if($verify_code == $verify_code_list[$mod]){ return true; }else{ return false; } }
2020年06月16日
3,206 阅读
0 评论
0 点赞
2020-03-18
如何越过阿里云 图片/文件 防盗链
403 AccessDenied前不久一套代码里的样式突然全掉了,看了下控制台发现 css/js 和 图片文件全都403了返回提示如下This XML file does not appear to have any style information associated with it. The document tree is shown below. <Error> <Code>AccessDenied</Code> <Message>You are denied by bucket referer policy.</Message> <RequestId>5E72380661ECA1559CCB04F6</RequestId> <HostId>shepay.xxxx.com</HostId> <BucketName>shepay</BucketName> </Error>看了下是阿里云的CDN,拒绝访问了,联系不到CDN的主人,甚至也来不及保存到本地了,相当难受。怎么办于是网上搜寻解决办法,发现并没有很多比较详细的提到如何绕过防盗链的,我真的只是想保存到本地而已~~后来在一位老哥这里看到了相关的功能,但是实测了下可以部分绕过防盗链,但是只限于图片格式,而我需要的不仅仅是图片,还要有文件格式。于是根据这位老哥的方法,做了修改和完善,图片和文字通过不同方式直接展示到浏览器,然后Command + S保存即可。测试调用方式如下(链接随时可能失效,仅供演示):https://guotianyu.cn/fdl.php?url= 要绕过防盗链的文件/图片链接如https://guotianyu.cn/fdl.php?url=http://shepay.ayunx.com/user/js/popper.min.js图片效果演示(上面是防盗链链接,下面是绕过防盗链的链接):文字效果演示:就当长个教训吧,特异性文件以后一定不放别人的CDN上...当然啦,不经许可使用即为盗,这种方法还是适合应急用,这里还是不鼓励这种行为啦~代码实现最后附上修改后的代码:<?php class ImgBridge{ private $water=''; private $imgUrl=''; private $referer=''; private $ua='MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1'; private $imgCode=''; private $imgHeader=''; private $imgBody=''; private $imgType=''; private $response = ''; public function __construct($config=array()){ foreach($config as $key=>$value){ $this->$key=$value; } } public function getImg($imgUrl){ $this->imgUrl=$imgUrl; /*\* 处理url \*/ if(substr($this->imgUrl,0,7)!=='http://' && substr($this->imgUrl,0,8)!=='https://'){ $this->imgUrl='http://'.$this->imgUrl; } /*\* 解析url中的host \*/ $url_array=parse_url($this->imgUrl); /*\* 设置referer \*/ $this->referer=$this->referer==""?'http://'.$url_array['host']:$this->referer; /*\*开始获取 \*/ $this->urlOpen(); $this->imgBody; /*\*处理错误 \*/ if($this->imgCode!=200){ $this->error(1); exit(); } /*\*获取图片格式 \*/ preg_match("/Content-Type: image\/(.+?)\\n/sim",$this->imgHeader,$result); /*\*看看是不是图片 \*/ if(!isset($result[1])){ // 如果不是图片就输出成文件 echo $this->response; // 也可以选择保存成文件,直接重命名即可使用 //file_put_contents('./test.txt',$this->response);die(); die(); $this->error(2); exit(); }else{ $this->imgType=$result[1]; } /*\* 输出内容 \*/ $this->out(); } private function out(){ /*\* gif 不处理,直接出图 \*/ if($this->imgType=='gif'){ header("Content-Type: image/gif"); echo $this->imgBody; exit(); } header("Content-Type: image/png"); /*\* 其他类型的,加水印 \*/ $im=imagecreatefromstring($this->imgBody); $white = imagecolorallocate($im, 255, 255, 255); /*加上水印\*/ if($this->water){ imagettftext($im, 12, 0, 20, 20, $white, "/fonts/hwxh.ttf", $this->water); } imagepng($im); } private function error($err){ header("Content-Type: image/jpeg"); $im=imagecreatefromstring(file_get_contents('./default.jpg')); imagejpeg($im); } private function urlOpen() { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->imgUrl); curl_setopt($ch, CURLOPT_USERAGENT, $this->ua); curl_setopt ($ch,CURLOPT_REFERER,$this->referer); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); /*\*跳转也要 \*/ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); /*\* 支持https \*/ $opt[CURLOPT_SSL_VERIFYHOST] = 2; $opt[CURLOPT_SSL_VERIFYPEER] = FALSE; curl_setopt_array($ch, $opt); $response = curl_exec($ch); $this->response = $response; $this->imgCode=curl_getinfo($ch, CURLINFO_HTTP_CODE) ; if ($this->imgCode == '200') { $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $this->imgHeader = substr($response, 0, $headerSize); $this->imgBody = substr($response, $headerSize); $this->response = $this->imgBody; return ; } curl_close($ch); } private function download() { ob_start(); $filename='down.txt'; $title=substr($filename,strrpos($filename,'/')+1); //$size=readfile($filename); //var_dump($size);exit; Header( "Content-type:application/octet-stream"); Header( "Accept-Ranges:bytes"); Header( "Accept-Length:"); header( "Content-Disposition: attachment; filename= $title"); //echo file_get_contents($size); exit; } } $img=new ImgBridge(array('water'=>'')); $img->getImg(strstr($_SERVER["QUERY_STRING"], "http"));
2020年03月18日
3,769 阅读
0 评论
0 点赞
2019-10-15
HTML+PHP支付自动提交 示例代码
有很多时候支付都需要把参数和签名一起发送到支付平台网站,get方式还可以直接跳转,可有些网站返回的是HTML页面,这时候post方式就不能用curl了,需要自己组合html自动提交。每次这种事情都要自己从头开始,所以在这写一个简单的跳转代码备份一下。// 生成HTML文件 // @params $params array 需要提交的二维数组段 // @return string 返回Html格式字符串,可以直接输出到浏览器 public function createHtml($params) { $url = "https://note.coccoo.cc/pay.html";// todo 修改你要提交的url $HTML = "<form action='{$url}' method='post' id='dataForm' name='dataForm'>"; foreach ($params as $k => $v){ $HTML .= "<input name='$k' value='$v' type='hidden'>"; } $HTML .= "<input type='submit' id='submit' value='ok' style='display:none;'>"; $HTML .= "</form>"; $HTML .= "<script type='text/javascript'>document.forms['dataForm'].submit();</script>"; return $HTML; }
2019年10月15日
5,291 阅读
0 评论
0 点赞
2019-09-17
Google Cloud (谷歌云)开启密码登录和root登录
GCP默认是使用密钥登录,用起来很不方便,于是打算改成密码登录。首先在GCP控制台使用SSH密钥登录到服务器。sudo -i //切换到root用户vi /etc/ssh/sshd_config //编辑文件找到如下几个地方PermitRootLogin yes //默认为no,需要开启root用户访问改为yesPasswordAuthentication yes //默认为no,改为yes开启密码登陆:wq保存退出然后设置root密码passwd root最后重启ssh服务systemctl restart sshd
2019年09月17日
5,388 阅读
0 评论
0 点赞
2019-09-17
AttributeError: 'module' object has no attribute 'X509_up_ref'
在Python项目中出现报错From cffi callback <function _verify_callback at 0x7f53ec1d2ed8>: Traceback (most recent call last): File "/usr/lib64/python2.7/site-packages/OpenSSL/SSL.py", line 309, in wrapper _lib.X509_up_ref(x509) AttributeError: 'module' object has no attribute 'X509_up_ref'解决办法卸载再重装pyOpenSSLpip uninstall pyOpenSSL pip install pyOpenSSL
2019年09月17日
3,906 阅读
0 评论
0 点赞
2019-05-15
Centos7把/home分区合并到/root
当/home分区和/不是一块硬盘或者挂载成不同分区的时候,我们有时候往往只大量使用了其中一个分区。那么如何把这两个分区合并成一个。首先看下当前分区大小分布[root@localhost ~]# df -lh Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 925G 47G 879G 6% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 116K 1.9G 1% /dev/shm tmpfs 1.9G 191M 1.7G 11% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 494M 97M 398M 20% /boot tmpfs 376M 0 376M 0% /run/user/0 /dev/mapper/centos-home 2.0G 33M 2.0G 2% /home看到此时的home分区是占用2G空间的,那我们操作它,把它合并到root分区。# 把/home内容备份,然后将/home文件系统所在的逻辑卷删除,扩大/root文件系统,新建/home: tar cvf /tmp/home.tar /home #备份/home 没东西可以不备份 # 记录一下 home下有多少可用空间 ,比如2G umount /home #卸载/home,如果无法卸载,先终止使用/home文件系统的进程 lvremove /dev/centos/home # 删除/home所在的lv lvextend -L +2G /dev/centos/root # 扩展/root所在的lv,增加/home的大小 xfs_growfs /dev/centos/root #扩展/root文件系统 mkdir -p /home && cd /home # 重新创建home目录 tar xvf /tmp/home.tar # 恢复备份的文件 # 这里一般需要重新设置下逻辑分区的大小 xfs_growfs /dev/centos/root # 重新设置root对应分区大小 df -h # 查询新分区现在如下:[root@localhost ~]# df -lh Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 927G 47G 881G 6% / devtmpfs 1.9G 0 1.9G 0% /dev tmpfs 1.9G 120K 1.9G 1% /dev/shm tmpfs 1.9G 191M 1.7G 11% /run tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup /dev/sda1 494M 97M 398M 20% /boot tmpfs 376M 0 376M 0% /run/user/0
2019年05月15日
6,191 阅读
0 评论
0 点赞
2019-05-14
PHPSTORM实时修改线上代码
1. 打开PHPStorm,点击工具栏Tools->Depolyment->Configuration2. 填写对应配置,格式默认SFTP。配置完毕后可以点击 Test SFTP connection 测试连接3. 点击Mappings选项卡,配置站点对应路径,然后保存即可4. 这时点击Tools->Depolyment->Browse Remote Host即可浏览服务器文件,勾选Automatic Upload即自动上传本地修改的文件服务器上的文件5. 你也可以手动上传下载ext第一次上传时建议先把项目压缩后完整上传到服务器在操作,否则大量小文件上传会很耗时间
2019年05月14日
2,241 阅读
0 评论
0 点赞
1
2
3
...
7