All posts by 龙生

php获取当前url地址的方法小结

本文实例讲述了php获取当前url地址的方法。分享给大家供大家参考,具体如下: js 获取: 1 2 top.location.href  //顶级窗口的地址 this.location.href //当前窗口的地址   php获取当前url地址: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #测试网址:   http://localhost/blog/testurl.php?id=5 //获取域名或主机地址 echo$_SERVER['HTTP_HOST']."<br>"; #localhost //获取网页地址 echo$_SERVER['PHP_SELF']."<br>"; #/blog/testurl.php //获取网址参数 echo$_SERVER["QUERY_STRING"]."<br>"; #id=5 //获取用户代理 echo$_SERVER['HTTP_REFERER']."<br>"; //获取完整的url echo’http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; echo’http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; #http://localhost/blog/testurl.php?id=5 //包含端口号的完整url echo’http://'.$_SERVER['SERVER_NAME'].':'.$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; #http://localhost:80/blog/testurl.php?id=5 //只取路径 $url=’http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]; echodirname($url); #http://localhost/blog   from:http://www.jb51.net/article/102577.htm

龙生   27 May 2018
View Details

js实现浏览器通知功能

概述 Notification API是浏览器的通知接口,用于在用户的桌面(而不是网页上)显示通知信息,桌面电脑和手机都适用,比如通知用户收到了一封Email。具体的实现形式由浏览器自行部署,对于手机来说,一般显示在顶部的通知栏。 如果网页代码调用这个API,浏览器会询问用户是否接受。只有在用户同意的情况下,通知信息才会显示。 下面的代码用于检查浏览器是否支持这个API。

  目前,Chrome和Firefox在桌面端部署了这个API,Firefox和Blackberry在手机端部署了这个API。

  上面代码检查当前浏览器是否支持Notification对象,并且当前用户准许使用该对象,然后调用Notification.requestPermission方法,向用户弹出一条通知。 Notification对象的属性和方法 Notification.permission Notification.permission属性,用于读取用户给予的权限,它是一个只读属性,它有三种状态。 default:用户还没有做出任何许可,因此不会弹出通知。 granted:用户明确同意接收通知。 denied:用户明确拒绝接收通知。 Notification.requestPermission() Notification.requestPermission方法用于让用户做出选择,到底是否接收通知。它的参数是一个回调函数,该函数可以接收用户授权状态作为参数。

  上面代码表示,如果用户拒绝接收通知,可以用alert方法代替。 Notification实例对象 Notification构造函数 Notification对象作为构造函数使用时,用来生成一条通知。

  Notification构造函数的title属性是必须的,用来指定通知的标题,格式为字符串。options属性是可选的,格式为一个对象,用来设定各种设置。该对象的属性如下: dir:文字方向,可能的值为auto、ltr(从左到右)和rtl(从右到左),一般是继承浏览器的设置。 lang:使用的语种,比如en-US、zh-CN。 body:通知内容,格式为字符串,用来进一步说明通知的目的。。 tag:通知的ID,格式为字符串。一组相同tag的通知,不会同时显示,只会在用户关闭前一个通知后,在原位置显示。 icon:图表的URL,用来显示在通知上。 上面这些属性,都是可读写的。 下面是一个生成Notification实例对象的例子。

  实例对象的事件 Notification实例会触发以下事件。 show:通知显示给用户时触发。 click:用户点击通知时触发。 close:用户关闭通知时触发。 error:通知出错时触发(大多数发生在通知无法正确显示时)。 这些事件有对应的onshow、onclick、onclose、onerror方法,用来指定相应的回调函数。addEventListener方法也可以用来为这些事件指定回调函数。

  close方法 Notification实例的close方法用于关闭通知。

  上面代码说明,并不能从通知的close事件,判断它是否为用户手动关闭。 本篇源自 《阮一峰老师的javascript篇》小篇只是在这里传播一下,绝无抄袭之意,多谢关注~   from:https://blog.csdn.net/u010081689/article/details/51004681

龙生   26 May 2018
View Details

好用的 CURL 类

cURL 是一个利用 URL 语法规定来传输文件和数据的工具,支持很多协议,如 HTTP、FTP、TELNET 等。最爽的是,PHP 也支持 cURL 库。使用 PHP 的 cURL 库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。无论是你想从从一个链接上取部分数据,或是取一个XML文件并把其导入数据库,那怕就是简单的获取网页内容. 在我们写 SOA 服务化项目的时候, 总是要定义许多 API 接口为功能提供服务, 那么这个时候 cURL 就发挥了它巨大的作用. 这里分享一下自己封装的 cURL 方法

  使用方法

from:https://laravel-china.org/articles/2768/easy-to-use-curl-class

龙生   25 May 2018
View Details

PHP 获取客户端ip地址

一、如果没有使用代理服务器, REMOTE_ADDR = 客户端IP    HTTP_X_FORWARDED_FOR = 没数值或不显示

  二、使用透明代理, REMOTE_ADDR = 最后一个代理服务器 IP   HTTP_X_FORWARDED_FOR = 客户端真实 IP (经过多个代理服务器时,这个值类似:221.5.252.160, 203.98.182.163, 203.129.72.215) 这类代理还会将客户真实ip发送到请求对象,无法隐藏真实ip。

三、使用普通匿名代理服务器, REMOTE_ADDR = 最后一个代理服务器 IP   HTTP_X_FORWARDED_FOR = 代理服务器 IP (经过多个代理服务器时,这个值类似:203.98.182.163, 203.98.182.163, 203.129.72.215) 这样就隐藏了客户端的真实ip,但服务器会知道客户端是通过代理服务器去访问的。 四、使用欺骗性代理服务器, REMOTE_ADDR = 代理服务器 IP   HTTP_X_FORWARDED_FOR = 随机的 IP(经过多个代理服务器时,这个值类似:220.4.251.159, 203.98.182.163, 203.129.72.215) 服务器可以识别到时通过代理服务器访问的,但发送给目标服务器的是虚假ip。 五、使用高匿名代理, REMOTE_ADDR = 代理服务器 IP       HTTP_X_FORWARDED_FOR = 没数值或不显示 使用这种代理时,不同浏览器不同设备会返回不同的ip头信息,因此PHP使用$_SERVER["REMOTE_ADDR"] 、$_SERVER["HTTP_X_FORWARDED_FOR"] 获取的值可能是空值也可能是“unknown”值。 PHP获取ip代码如下:

from:https://www.cnblogs.com/rendd/p/6183094.html

龙生   25 May 2018
View Details

Windows的密码复杂度策略

不能包含用户的帐户名,不能包含用户姓名中超过两个连续字符的部分 至少有六个字符长 包含以下四类字符中的三类字符: 英文大写字母(A 到 Z) 英文小写字母(a 到 z) 10 个基本数字(0 到 9) 非字母字符(例如 !、$、#、%)

龙生   25 May 2018
View Details

8个流行的持续集成工具

如果你很熟悉“持续集成”,一定会同意这样的观点:“使用它已经成为一种强制”。如今有很多持续集成工具,在这篇文章中,我们将介绍几款流行的持续集成工具。阅读本篇文章后,你会有对这些CI工具有一个更好的了解,知道他们能够为你提供什么功能,从而选出最适合你需求的一款持续集成工具。 接下来将依次介绍8款持续集成工具(介绍的顺序没有任何含义):       Jenkins      Jenkins是一款用Java编写的开源的CI工具。当Oracle收购Sun Microsystems时,它作为Hudson的分支被开发出来。Jenkins是一个跨平台的CI工具,它通过GUI界面和控制台命令进行配置。 Jenkins非常灵活,因为它可以通过插件扩展功能。Jenkins插件非常好用,同时你可以容易地添加自己的插件。除了它的扩展性之外,Jenkins还有另一个非常好的功能——它可以在多台机器上进行分布式地构建和负载测试。Jenkins是根据MIT许可协议发布的,因此可以自由地使用和分发。Cloudbees还提供Jenkins in Cloud形式的托管解决方案。       总结:Jenkins是最好的持续集成工具之一,它既强大又灵活。学习它可能要花费一些时间,但是如果你需要一个灵活的持续集成解决方案,那么学习如何使用它将是非常值得的。 官方网址:Jenkins 可用性:免费 平台:跨平台       TeamCity     TeamCity是一款成熟的CI服务器,来自JetBrains公司。 JetBrains已经在软件开发世界中建立了权威,他们的工具如WebStorm和ReSharper正被全球的开发者所使用。 TeamCity在它的免费版本中提供了所有功能,但仅限于20个配置和3个构建代理。额外的构建代理和构建配置需要购买,你可以在这里找到价格。 TeamCity安装后即可使用,可以在多种不同的平台上工作,并支持各种各样的工具和框架。 能够支持JetBrains和第三方公司开发的公开的插件。尽管是基于Java的解决方案,TeamCity在众多的持续集成工具中提供了最好的.NET支持。TeamCity也有多种企业软件包,可以按所需代理的数量进行扩展。 总结:整体而言是TeamCity是非常好的持续集成解决方案,但由于其复杂性和价格,更适合      企业需求。 官方网站:TeamCity 可用性:3个代理和20个构建配置是免费的,额外的代理和配置需要付费 平台:Servlet容器(本地)       Travis CI     Travis CI是最老的托管解决方案之一,赢得了很多人的信任。虽然它主要以托管解决方案而闻名,但它也以企业包的形式提供内部版本。 Travis CI对GitHub上托管的所有开源项目以及前100个版本的构建都是免费的。有几个定价计划可以供你选择,它们之间主要区别是你可以运行的并发构建数量。 Travis CI的构建通过.travis.yml文件进行配置,该文件包含了在构建时所需要执行的任务。它能够支持多种语言并提供完善的帮助文档。 总结:一个成熟的解决方案,提供托管和本地变种,被许多团队喜爱和使用,非常有据可查。 官方网站:Travis CI 可用性:对开源计划和前100个版本的构建是免费的,其他的服务需要付费 平台:托管和本地       Go CD     Go是ThoughtWorks公司最新的Cruise Control的化身。除了ThoughtWorks提供的商业支持,Go是免费的。它适用于Windows,Mac和各种Linux发行版 让Go脱颖而出的是它的流水线概念,使复杂的构建流程变得简单。关于流水线概念是如何帮助持续交付,以及如何与Jenkins的流水线流程进行比较,您可以在这里阅读到相关内容。它最初的设计时就支持流水线概念,消除了构建过程的瓶颈,并能够并行地执行任务。 总结:Go CD非常适合复杂场景,并且能够免费提供付费的支持。 官方网站:Go CD 可用性:免费提供付费的支持 平台:Windows,Mac和一些Linux发行版        Bamboo    Atlassian是专注于为软件开发团队提供工具的公司,你或许已经通过JIRA和Bitbucket了解到了他们。Bamboo最初提供了云端和本地两种持续集成的解决方案,但在2016年5月,云端版本不再支持Bitbucket Pipeline。Bitbucket Pipeline能够支持Docker, 是一个非常高效且快速的持续集成解决方案,正在迅速发展,是Bamboo云端版本的有利继承者。 Bamboo可以免费试用30天。作为Atlassian工具,它能够很好地支持JIRA和BitBucket,甚至可以将Jenkins配置轻松地导入到Bamboo中。 总结:Bamboo是一款本地CI工具。其原本的云段解决方案被Bitbucket pipeline所取代。有30天的免费试用,在此之后可以进行付费使用。 官方网站:Bamboo 可用性:付费免费试用 平台:本地 GitLab CI      GitLab CI是开源的Rails项目GitLab的一个组成部分,由GitLab公司将它带到了大众的视野中。 GitLab托管在GitLab.com上,GitLab.com提供了免费的托管服务,并且提供了git仓库存储和管理功能,如访问控制,问题跟踪,代码评论等。 GitLab CI能与GitLab完全集成,可以通过使用GitLab API轻松地作为项目的钩子。GitLab的执行部分(流程构建)使用Go语言编写,可以运行在Windows,Linux,OSX,FreeBSD和Docker上。 官方的Go […]

龙生   24 May 2018
View Details

AJAX实现瀑布流触发分页与分页触发瀑布流的方法

所谓的瀑布流效果就正如轻图床首页效果那样,多个内容相近的栏目紧密排列,尽量使到栏目间的间隙最小(即流体布局),并且随着页面滚动条向下滚动,新的数据会追加至当前页面的尾部直到所有数据加载完毕(滚动触发的 Ajax 翻页)。 瀑布流触发分页 这里说一下思路,虽然下面的实例中不能全都用到: 1.当进入屏幕时,判断内容是否为空,如果不为空,开始初始化数据。 2.当往屏幕下拉时,判断数据的最底部与屏幕高度+滚动的高度的大小。如果最底部小于上面两者之和,重新请求接口,即加载数据。 3.当遇到数据超过某个页数时,停止加载或者用分页的形式显示,点击再显示内容。

以上就是比较简单的随着下拉内容不断加载的思路代码。 JSON格式类似于(如果是动态接口,可以通过callback函数,则这里不用加fill()):

原来静态也可以做接口回调。通过静态处理,则大大缓解了服务器压力和加速生成内容,是大流量网站必备的处理方式。 jQuery的ajax方法实现分页触发瀑布流 1.通过 Ajax 的方式获取下一页的内容 我们需要网页中具有如下 HTML 结构的导航, next_link 为下一页的 url。

相应的 css

以下这段代码为通过 Ajax 的方式获取下一页的内容,并追加到当前内容的末尾。

2.对追加的内容进行流体布局 熟悉 jQuery 的童鞋应该会了解 js 对于通过 Ajax 方式插入到页面中的元素并不起作用,但在这里并不需要作出如使用 live() 等处理,因为 Masonry 已经在内部作出类似的处理并且默认起效,因此只需在 Ajax 成功执行后的回调函数中调用 masonry() 方法即可。

3.对 Ajax 翻页过程作出修饰 在上面的过程中已经有完整的瀑布流布局,但是翻页过程中并没有任何提示,而且直接插入多张图片可能会影响用户体验,因此需要对翻页过程作出一些修饰,下面给出完整代码。 这里需要增加一个如下的元素,用于提示正在加载新内容或提示已到了最后一页。

相应的 css

下面是完整的 Ajax 翻页代码

from:http://www.jb51.net/article/84888.htm

龙生   23 May 2018
View Details

php判断请求类型(ajax|get|post|cli)

  from:https://blog.csdn.net/wujiangwei567/article/details/72772783

龙生   23 May 2018
View Details

Jmeter使用入门

  修改时间 修改内容 修改人 2016.3.12 创建 刘永志 2016.6.18 完成 刘永志     Jmeter简介 Jmeter的基本概念 百度百科: Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言   我们为什么使用Jmeter 开源免费,基于Java编写,可集成到其他系统可拓展各个功能插件 支持接口测试,压力测试等多种功能,支持录制回放,入门简单 相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试 多平台支持,可在Linux,Windows,Mac上运行   Jmeter安装配置 Windows下Jmeter下载安装 登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件 安装JDK,配置环境变量(具体步骤不做介绍) 将下载Jmeter文件解压,打开/bin/jmeter.bat   其他平台安装Jmeter 与Windows平台一致,除入口文件不同,例如linux平台下为/bin/jmeter.sh Jmeter的目录结构 /bin 目录(常用文件介绍) examples:目录下包含Jmeter使用实例 ApacheJMeter.jar:JMeter源码包 jmeter.bat:windows下启动文件 jmeter.sh:Linux下启动文件 jmeter.log:Jmeter运行日志文件 jmeter.properties:Jmeter配置文件 jmeter-server.bat:windows下启动负载生成器服务文件 jmeter-server:Linux下启动负载生成器文件 /docs目录——Jmeter帮助文档 /extras目录——提供了对Ant的支持文件,可也用于持续集成 /lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录 /licenses目录——软件许可文件,不用管 /printable_docs目录——Jmeter用户手册   Jmeter相关插件安装: 插件安装: Jmeter的插件安装很简单,只需要下载对应插件解压即可。 下载地址:http://jmeter-plugins.org/downloads/all/ 下载后解压放入:apache-jmeter-2.12\lib\ext\目录下 重启jmeter ps:数据库链接驱动如果需要需要专门下载,例如mysql需要jdbc的jar包,地址:http://dev.mysql.com/downloads/file/?id=462850 使用注意事项:添加第三方插件并使用后保存的jmx文件在未添加该插件的运行环境下会导致无法打开该文件并报错,请保持环境一致性。 用例生成与导出: Jmeter的用例格式为jmx文件,实际为xml格式,感兴趣可以学习下自己定制生成想要的jmx文件。 生成原则: 每个功能模块为一个独立的jmx文件。增加可维护性。(尽量不要将一个jmx文件放入太多功能,后期维护成本会很高。) 模块的私有变量保存在模块中,多模块共有的(例如服务器ip端口等)可以考虑存在单独的文件中读取。 接口测试不要放太多线程,毕竟不是做压力测试,意义也不大。 导出方法: 编写测试用例 文件——保存为——确定:   Jmeter常用文件类型 Jmx文件 文件的实际类型:xml 文件样本: <jmeterTestPlan version="1.2" properties="1.8"> <hashTree> <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test" enabled="true"> <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" […]

龙生   22 May 2018
View Details
1 189 190 191 432