首页
关于
Search
1
Fastadmin 美化后台样式
310,959 阅读
2
关于破解移动宽带光猫 型号: GS3101 超级管理员密码
26,943 阅读
3
给Thinkphp3用上composer
19,997 阅读
4
Wallpaper完美壁纸修复天气bug(无需申请API)
19,908 阅读
5
PECL无法安装时手动编译安装PHP扩展
19,638 阅读
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#
前端
页面
关于
搜索到
126
篇与
的结果
2017-07-18
让浏览器直接输出HTML代码而不解析
我打算把带样式的浏览器标签保存到数据库里,有一点地方报错,于是我想先把插入语句打印出来,直接在mysql插入看看有没有问题,但是在浏览器打印出来时发现变成了这样于是我在想怎么让浏览器直接输出HTML代码而不解析,网上搜集了一下,大概有以下几种方式方法一:将HTML代码嵌入到<script type='text/html' style='display:block'></scipt>中<script type='text/html' style='display:block'> <带标签的内容/> </scipt>方法二:空格 把标签的< 替换成 <把标签的> 替换成> 这样就不会被解析了" "(双引号“”)这里附加几个特殊符号:→(右箭头→) ←(左箭头←)方法三:放到<pre></pre>或者<xmp></xmp>标签中pre元素可定义预格式化的文本。被包围在pre元素中的文本通常会保留换行符和空格。而文本也会呈现等宽字体。不过我只试了第三种,发现没有成功。。。如有更好的答案,请指教
2017年07月18日
2,466 阅读
0 评论
1 点赞
2017-07-07
闲聊川藏穷游
来,干了这碗肮脏的反鸡汤。为什么要提这个,因为想到多年前认识的一个朋友,对西藏有着近乎执念的向往,对宗教也的虔诚也异于常人,心心念念想要去一趟西藏。(不过去没去我就不得知了)到此为止,只说看法。女生独行(多人也不好说),往往是炮火连天进西藏。所谓徒步穷游去西藏,不过是炮游。听朋友谈过,在川藏线上,你能见到的最多的人就是打着穷游的旗号的背包客,长期盘踞在路旁,有车经过即招手,毕竟2000多公里的路,开车都会觉得累,何况徒步。只要能搭上顺风车,就可以骗吃骗喝,分腿坐车,这已然成为川藏线上的新风俗,人人都是心知肚明,可以说要去的人都会或者说应该提前有心里准备。等到那些人归来之后,可以到处吹嘘,自己曾去过哪些地方,见过什么风景,却绝口不提遇到过什么人。“西藏不是十多年前的西藏了。我爸曾跟我说过这句话,本意是指西藏的天,实际上可能一切都变了。其实不止西藏,丽江、大理、成都等地也是如此,民谣、可可西里、故事、酒成了他们的关键词。“他们深知来往的姑娘们见惯了城里的小白脸,一身邋遢的衣服,唏嘘的胡渣和黝黑的皮肤,就有一大堆姑娘排队等着开好房等着他们翻牌子。”好像这种人拥有一个共同的精神导师,大冰,矫情又夸大的《他们最幸福》、《乖,摸摸头》,被他们奉为圣经。在我看来,像是一群已经被洗脑的宗教信徒。本来我不该对这些事发表什么看法,只是突然又看到有人提起,并且这种事可能就发生在身边的人身上,才忍不住想说两句。穷游无错,川藏也无错,只是希望你以后,不要是这种人半是游客半是鸡 半推半就半解衣 分无分文行西藏 别人刷卡你刷逼
2017年07月07日
2,513 阅读
1 评论
0 点赞
2017-07-06
在windows用python自动备份数据库
模板和linux上备份差不多,但是windows上有些命令不通用#!/usr/bin/env python # -*- coding: utf-8 -*- import os import time user = 'root' # 数据库帐号 passwd = 'passwd' # 密码 database = 'picking' # 要备份的数据库名称 if not os.path.exists('C:\PHP\sql\\'+database): os.mkdir('C:\PHP\sql\\'+database) while True: os.chdir('C:\PHP\sql\\'+database) xyFile = database+'-'+ time.strftime('%Y-%m-%d',time.localtime(time.time())) + '.sql' os.system("mysqldump -u"+user+" --password="+passwd+" "+database+" >"+xyFile) time.sleep(86400)
2017年07月06日
2,125 阅读
0 评论
0 点赞
2017-06-29
关于原生PHP实现功能的示例
ThinkPHP 用多了,原生PHP都快不会了,不行,不行不行跨域头 header('Access-Control-Allow-Origin:*');PHP跳转页面header("Location: https://note.coccoo.cc"); //确保重定向后,后续代码不会被执行 exit; ``` ### PHP获取html中img标签的src值(正则表达式) > 实现功能主要是在`富文本编辑器`提交过来的数据,包含了所有的html样式,但是我要根据富文本提交过来的数据判断有没有图片,如果有的话就把图片提取出来当`封面`,如果没有就给它一个`默认的封面` //content 富文本内容 //matches 提取出来的包含src的数组 //pic 最终的src值 if (preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$content,$matches)){ //得到图片地址结尾的位置 if ($num = strpos($matches[1],'"')){ //截取字符串,得到真正图片地址 $pic = substr($matches[1],0,$num); }else{ $pic = $matches[1]; } } ### mysqli连接数据库(可能)常用功能 > 现在貌似`mysql_`函数都慢慢被废弃了,开始转用`mysqli_`函数,比如`mysqli_connect` 设置编码$con = mysqli_connect($host,$username,$password,$db) or die("Unable to connect to the MySQL!"); mysqli_query($con,"set names 'utf8'");//设置编码开启事务$con->autocommit(false);//开启事务 $res1 = mysqli_query($con,$sql1);//第一条操作 $res2 = mysqli_query($con,$sql2);//第二条操作 if ($res1 && $res2){ //提交事务 $con->commit(); //关闭连接 mysqli_close($con); }else{ //回滚 $con->rollback(); } ### 判断某时间戳是否在今年 > 判断某个时间戳是不是在今年,如果是,就不显示带年份,如果不是,就显示年份时间 //$dis_time 要展示出来的时间 //date('Y',time()) == date('Y',$dis_time) 判断时间戳是否是今年 $dis_time = (date('Y',time()) == date('Y',$dis_time)) ? date('m-d H:i',$dis_time) : date('y-m-d H:i',$dis_time);这样展示出来的数据就有两种形式,`06-29 12:28` 或者 `2008-07-22 12:28` ### 时间戳转换成微信朋友圈形式 > 把时间戳转换成类似朋友圈的形式,比如`一分钟前`,`两天前`之类的 //@param $addTime 传进去的时间戳 //return $timeStr 转换后的时间public function getTime($addTime){ $nowTime = time();//当前时间 if($addTime > $nowTime) { return ""; } $dTime = $nowTime-$addTime;//时间差 $year = intval($dTime/2592000/12);//年数 $month = intval($dTime/2592000);//月数 $day = intval($dTime/86400);//天数 $hour = intval($dTime/3600);//小时 $min = intval($dTime/60);//分钟 if ($min<1){ $timeStr = '刚刚'; }else if ($hour < 1){ //分钟处理 $timeStr = $min.'分钟前'; }else if ($day<1){ //小时处理 $timeStr = $hour.'小时前'; }else if ($month<1){ //天数处理 $timeStr = $day.'天前'; }else if ($year<1){ //月数处理 $timeStr = $month.'月前'; }else{ //年数处理 $timeStr = $year.'年前'; } return $timeStr; }
2017年06月29日
1,595 阅读
0 评论
0 点赞
2017-06-25
Sublime Text 3 安装Package Control
找了一堆全是离线安装的,我只想在线安装都找不到地址,神经病在SublimeText3中按 Ctrl + ` 会出现一个框,然后打开https://packagecontrol.io/installation这个地址找到对应版本的代码,复制下来粘贴到刚才的框里回车就可以了
2017年06月25日
1,302 阅读
0 评论
0 点赞
2017-06-22
微信公众号开发 48001 错误
{"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}个人订阅号未认证,权限会比较少,但是没想到使用测试号居然也出现这个问题,不过解决了说明网页授权获取用户基本信息:两种 scope 域https://open.weixin.qq.com/connect/oauth2/authorize?appid={0}&redirect_uri={1}&response_type=code&scope={2}&state=ok#wechat_redirect其中snsapi_base 不需要用户点同意,直接跳转到授权后的页面,只能用于获取openid,不能获取用户基本信息snsapi_userinfo 会征求用户同意,授权后,可以获取用户基本信息返回数据的示例{ "access_token":"YNTxefBAfNW565Q4MAI..................j-hLNzin9Vq6BnvcvJ8NKHdBSRhkLjHQliLiNQc", "expires_in":7200, "refresh_token":"EYmfmvUg0PGtOWiLpb..................T8O2UyKL95_Da23fLV-nYFDgnt14Ljl_x_zCMY", "openid":"oYbGRs8MmU6bESxXcX2Z0rFRivjQ", "scope":"**snsapi_base**" } { "access_token":"IdFXvRMq3J6vXUcZ0iQ..................G1xbkGJEnbnSKQ4G0nyQ5vmNSKF4a4DzGu64", "expires_in":7200, "refresh_token":"J8ot4JWphxwvyAY3I9r..................krET6P-8dot_-_tQfFoLUQI3EI-NT-I-degNRGumA", "openid":"oYbGRs8MmU6bESxXcX2Z0rFRivjQ", "scope":"**snsapi_userinfo**" }流程再现首次使用 scope=snsapi_base 进行网页授权拿到 code 后调用接口 https://api.weixin.qq.com/sns/oauth2/access_token?appid={0}&secret={1}&code={2}&grant_type=authorization_code根据上一步获取的 openid 和 access_token 调用接口 https://api.weixin.qq.com/sns/userinfo?access_token={0}&openid={1}&lang=zh_CN 获取用户基本信息获取失败:返回 {"errcode":48001,"errmsg":"api unauthorized, hints: [ req_id: 1QoCla0699ns81 ]"}失败原因scope=snsapi_base 时,只能用于获取openid,不能获取用户的基本信息(获取用户信息,需要用户同意。)scope=snspai_base 授权时,并没有征求用户同意授权这一操作X疑问(有时候成功,有时候失败)为什么有的时候(或者另外一个公众号),按上面的步骤,能成功获取到用户的基本信息?48001,api unauthorized之所以让很多人迷惑不解,就在于这个问题然而先使用 scope=snsapi_userinfo 进行一次网页授权,步骤跟上面【问题再现】一样,成功获取到用户的微信基本信息。再使用 scope=snsapi_base 重复一遍【问题再现】,这次成功了!!!X原因第一次使用 scope=snsapi_base,这是不需要经过用户同意的授权,不能获取用户的基本信息第二次使用 scope=snsapi_userinfo,这是需要用户点击同意的授权,能获取到用户的基本信息使用 scope=snsapi_userinfo,用户同意授权后,在一定时间内,不需要用户的同意,也可以获取用户基本信息(此时使用 scope=snsapi_base 也能获取到用户基本信息:甚至参数openid的值随便填都没关系,可以是空格,但不能为空)注意使用 scope=snsapi_userinfo,用户同意授权后,access_token 的有效期是7200秒(两小时)。access_token 失效后,可以使用 refresh_token 调用接口 https://api.weixin.qq.com/sns/oauth2/refresh_token?appid={0}&grant_type=refresh_token&refresh_token={1} 重新获取 access_token(有效期7200秒)refresh_token 的有效期是30天,即用户同意授权后,在30天内,不再需要用户同意授权,就可以获取用户基本信息参考:http://www.cnblogs.com/liaolongjun/p/6080240.html
2017年06月22日
1,661 阅读
0 评论
0 点赞
2017-06-22
Session会话和浏览器的关系
今天想和大家分享一个关于Session的话题: 当浏览器关闭时,Session就被销毁了?我们知道Session的作用是可以保存当前用户的状态信息,初学它的时候,认为Session的生命周期是从打开一个浏览器窗口发送请求到关闭浏览器窗口,但其实这种说法是不正确的!下面就具体的去解释:当用户第一次访问Web应用中支持Session的某个网页时,就会开始一个新的Session,那么接下来当用户浏览这个Web应用的不同网页时,始终处于一个Session中再详细些:当一个Session开始时,Servlet容器会创建一个HttpSession对象,那么在HttpSession对象中,可以存放用户状态的信息Servlet容器为HttpSession对象分配一个唯一标识符即Sessionid,Servlet容器把Sessionid作为一种Cookie保存在客户端的 浏览器 中用户每次发出Http请求时,Servlet容器会从HttpServletRequest对象中取出Sessionid,然后根据这个Sessionid找到相应的HttpSession对象,从而获取用户的状态信息以上就是Session的运行机制,但是还没有提到Session的生命周期,再往下了解!其实让Session结束生命周期,有以下两种办法:一个是Session.invalidate()方法,不过这个方法在实际的开发中,并不推荐,可能在强制注销用户的时候会使用;一个是当前用户和服务器的交互时间超过默认时间后,Session会失效我们知道Session是存在于服务器端的,当把浏览器关闭时,浏览器并没有向服务器发送任何请求来关闭Session,自然Session也不会被销毁,但是可以做一点努力,在所有的客户端页面里使用js的window.onclose来监视浏览器的关闭动作,然后向服务器发送一个请求来关闭Session,但是这种做法在实际的开发中也是不推荐使用的,最正常的办法就是不去管它,让它等到默认的时间后,自动销毁那么为什么当我们关闭浏览器后,就再也访问不到之前的session了呢?其实之前的Session一直都在服务器端,而当我们关闭浏览器时,此时的Cookie(应该是会话Cookie)是存在于浏览器的进程中的,当浏览器关闭时,Cookie也就不存在了。其实Cookie有两种:一种是存在于浏览器的进程中;一种是存在于硬盘上而session的Cookie是存在于浏览器的进程中,那么这种Cookie我们称为会话Cookie,当我们重新打开浏览器窗口时,之前的Cookie中存放的Sessionid已经不存在了,此时服务器从HttpServletRequest对象中没有检查到sessionid,服务器会再发送一个新的存有Sessionid的Cookie到客户端的浏览器中,此时对应的是一个新的会话,而服务器上原先的session等到它的默认时间到之后,便会自动销毁。ps:当在同一个浏览器中同时打开多个标签,发送同一个请求或不同的请求,仍是同一个session;当不在同一个窗口中打开相同的浏览器时,发送请求,仍是同一个session;当使用不同的浏览器时,发送请求,即使发送相同的请求,是不同的session;当把当前某个浏览器的窗口全关闭,再打开,发起相同的请求时,就是本文所阐述的,是不同的session,但是它和session的生命周期是没有关系的.
2017年06月22日
1,594 阅读
0 评论
0 点赞
2017-06-18
网站初步实现https访问
2017/09/24 : 对了,开头补充一点,一般网站访问https大多是使用301永久跳转的,具体实现规则在下面也有。可以忽视上面那句话~~今天服务器一度崩溃,因为一个字母因为在朋友那里看到他已经升级https,所以我也准备把网站从http改成https,看起来不过就加一个字母而已有点麻烦,不过好在初步完成了方法首先要去某个地方申请证书,小网站申请免费的就好,我是在腾讯云申请个免费的。其实你也可以自建证书,只不过可能会显示你的证书不安全。申请完证书之后就是安装证书,腾讯云文档写的还是比较清楚的,自己看一下基本上都能过。然后去下载证书,把你下载的证书解压放到你的服务器上,比如放在/etc/http/conf/ca/下,然后按照这个,不管是Apache、nginx还是IIS都有对应的方法。踩坑接下来是坑(敲黑板)1. 原谅我一直不知道服务器使用https是一定要用443端口的,所以80要改成4432. web代理软件需要打开重定向支持,没有对应模块(mod_ssl和openssl)的话需要自行安装或者编译安装,方法去百度 google3. 配置网站自动跳转HTTPS在访问网站的时候一般不会手动加https://,所以需要用Apache重定向功能让http的访问流量自动转移到https,所以就要用到 .htaccess这个文件了,具体使用方法参考上一条或者如果你也是使用Apache并且不想用.htaccess文件的话,可以用这种方法:在你原本的虚拟主机配置上加一句话 :Redirect permanent / note.coccoo.cc:443现在你的站点看起来就像这样:<VirtualHost *:80> ServerName note.coccoo.cc Redirect permanent / note.coccoo.cc:443 DocumentRoot "/home/wwwroot/typecho" </VirtualHost>或者也可以直接在站点加上如下代码那么你的站点就像这样<VirtualHost *:80> ServerName note.coccoo.cc DocumentRoot "/home/wwwroot/typecho" RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^(.*) https://%{SERVER_NAME}$1 [L,R] </VirtualHost>让你的站点下所有的链接都跳转到443端口,然后再配置一个443端口的虚拟主机就可以了现在我的配置就像这样了<VirtualHost *:80> ServerName note.coccoo.cc Redirect permanent / note.coccoo.cc:443 DocumentRoot "/home/wwwroot/typecho" </VirtualHost> <VirtualHost *:443> ServerName note.coccoo.cc:443 DocumentRoot "/home/wwwroot/typecho" SSLEngine on SSLCertificateFile /etc/httpd/conf/extra/note/2_note.coccoo.cc.crt SSLCertificateKeyFile /etc/httpd/conf/extra/note/3_note.coccoo.cc.key SSLCertificateChainFile /etc/httpd/conf/extra/note/1_root_bundle.crt <Directory "/home/wwwroot/typecho"> AllowOverride All </Directory> </VirtualHost>4. 在使用https的时候,正常情况下在网站域名前会出现安全字样,如下但是如果你的网站中有任何文件(包括但不限于图片、js、css等)不是通过https访问的,就会在域名前出现一个感叹号,如下5. 我的部分.htaccess配置<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} !^443$ #RewriteCond %{REQUEST_URI} !^/test.php RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R=301] </IfModule>以上规则的意思是,如果访问的url的端口不是443,且访问页面不是test.php,则应用RewriteRule这条规则。这样便实现了:访问了 http://localhost/index.php 或者 http://localhost/admin/index.php 等页面的时候会自动跳转到 https://localhost/index.php 或者 https://localhost/admin/index.php。解释下%{SERVER_PORT} —— 访问端口%{SERVER_NAME} —— 比如如果url是 http://localhost/test.php,则是指 localhost%{REQUEST_URI} —— 比如如果url是 http://localhost/test.php,则是指 /test.php
2017年06月18日
2,232 阅读
0 评论
0 点赞
1
...
11
12
13
...
16