PHP获取ipip所在城市

1获取真实ip,本地测试总是::1或者127.0.0.1或者局域网的ip/***获取用户真实IP*/functiongetIP(){static$realip;if(isset($_SERVER)){if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){$realip=$_SERVER["HTTP_X_FORWARDED_FOR"];}elseif(isset($_SERVER["HTTP_CLIENT_IP"])){$realip=$_SERVER["HTTP_CLIENT_IP"];}else{$realip=$_SERVER["REMOTE_ADDR"];}}else{if(getenv("HTTP_X_FORWARDED_FOR")){$realip=getenv("HTTP_X_FORWARDED_FOR");}elseif(getenv("HTTP_CLIENT_IP")){$realip=getenv("HTTP_CLIENT_IP");}else{$realip=getenv("REMOTE_ADDR");}}return$realip...

jQuery-zclip实现复制内容到剪切板

jQuery-zclip是一个复制内容到剪贴板的jQuery插件,使用它我们不用考虑不同浏览器和浏览器版本之间的兼容问题。jQuery-zclip插件需要Flash的支持,使用时记得安装AdobeFlashPlayer。本来以为,复制粘贴很简单,没想到还需要插件。找了很多,这个jquery-zclip的插件算是不错的。这里需要注意的就是,这个插件,必须在服务器的环境中才能正常显示效果。使用方法,1.引入文件<!--点击复制begin--><scripttype="text/javascript"src="/js/zclip/jquery.zclip.js"></script><!--点击复制end-->2.引入css样式/*复制提示*/.copy-tips{position:fixed;z-index:999;bottom:50%;left:50%;margin:00-20px-80px;background-color:rgba(0,0,0,0.2);filter:progid:DXImageTransform.Microsoft.Gr...

Javascript 思维导图

  学习的道路就是要不断的总结归纳,好记性不如烂笔头,so,下面将po出8张javascript相关的思维导图。...
代码星球 代码星球·2020-04-06

Javascript 风格向导

序   大部分针对Javascript最合理的方法归纳。 类型 • 原始类型:我们可以直接使用值。  ο  string  ο  number  ο  boolean  ο  null  ο  undefined varfoo=1,bar=foo;bar=9;console.log(foo,bar);//=>1,9 • 复合类型:我们通过`引用`对值进行间接访问。  ο  object  ο  array  ο  function  varfoo=[1,2],bar=foo;bar[0]=9;console.log(foo[0],bar[0]);//=>9,9   Objects • 使用{}创建对象。//badvaritem=newObject();//goodvaritem={}; • ...
代码星球 代码星球·2020-04-06

Javascript之return

做表单验证的时候,除了错误提示之外,还要做的一点就是避免表单提交。如果避免表单提交呢?有一个方法很简单,就是return我们来看一下代码:$(".make_sure").click(function(){varflag=true;$(".isrequest").each(function(i){if(!$.trim($(this).val())){flag=false;}});if(flag==false){alert("对不起,请完善必填信息!");return;}varcoursename=$("#coursename").val();varlen=coursename.length;if(len>30){alert("素材名称过长!");return;}$("#form1").submit();});这是表单提交的动作,提交之前,做相应的验证,包括不能为空,以及长度限制等等。只要看到return之后,下面的代码,就终止执行了,就不会走到最后一步的submit()方法,表单就不会提交了。可以说,return就是很好的断点,使用很方便!...
代码星球 代码星球·2020-04-06

悟透Javascript之 原型prototype

构造函数的Prototype上定义的方法确实可以通过对象直接调用,而且代码是共享的。我表示我不懂。太难理解了,艹。在Javascript中,prototype不但能让对象共享自己的财富,而且prototype还有寻根问祖的天性。当从一个对象那里读取属性或调用方法时,如果该对象自身不存在这样的属性或方法,就会去自己关联的prototype对象里寻找。如果prototype没有,又会去prototype自己关联的前辈prototype那里寻找,直到找到或追溯过程结束为止。我们先从Javascript中的构造函数说起,<scripttype="text/javascript">functionPerson(name){//带参数的构造函数this.name=name;//定义并初始化name属性this.SayHello=function(){//定义对象方法SayHelloalert("Hello,I'm"+this.name);}}functionEmployee(name,salary)//子构造函数{Person.call(this,name);//调用父构造函数this...

悟透Javascript undefined,null,"",0这四个值转换为逻辑值时就是false &this关键字

话题一:undefined,null,"",0这四个值转换为逻辑值时就是false也就是在if判断时会把上面的五个作为false来判断。但是它们的类型确是不尽相同的,如下所示。typeof(undefined)=='undefined'typeof(null)=='object'typeof("")=='string'typeof(0)=='number'typeof(false)=='boolean'下面是案例来说明,逻辑值为false的情况。<scripttype="text/javascript">functionmyFunc(){if(!undefined){alert("test1");}if(!null){alert("test2");}if(!""){alert("test3");}if(!0){alert("test4");}if(!false){alert("test5");}}myFunc();</script>这些都会通过判断,因为它们都表示false。另外再补充一下"123"==123返回true"123"===123返回false三个等...

TCP/IP 目录导航

用了近二十天的时间,把一本800页的书看完,感觉收获还是很大的。对网络,对这些协议有了深刻的认识!知道了路由器与交换机的区别。知道了IP地址的特点。知道了网络的分层,物理层,数据链路层,网络层,传输层,应用层。知道了各个层的协议。知道了数据传输的特点,比特,帧,数据报,报文段,报文。知道了文件传输协议FTP。知道了远程连接SSH。知道了UDP协议是一种非面向连接的协议。知道了报文的格式。知道了TCP/IP协议是很多协议的组合。知道了协议也是程序。知道了很多很多。开始时读的很吃力,后来还是很吃力。其实没必要都读懂。知识是需要沉淀的,长时间的学习,就会逐步深入知识。下面是我整理的一些博客的连接,排名分前后!1.TCP/IP图解信息传输2.TCP/IP底层技术图解3.TCP/IP之网络层4.TCP/IPIPv45.IP/TCPIP分组的交付与转发6.TCP/IP移动IP7.TCP/IP单播路由8.TCP/IP多播和多播路由9.TCP/IP运输层10.TCP/IPUDP用户数据报协议运输层11.TCP/IPTCP传输控制协议12.TCP/IPSCTP流控制传输协议13.TCP/IP应用层14....
代码星球 代码星球·2020-04-06

TCP/IP 邮件的原理

邮件通过SMTP协议来实现,有它的服务器SMTP服务器。它是怎么在万维网中运行的呢?我们来看看两个案例,下面的两个图来展示。案例一:Alice通过传统的邮件服务器发送给Bob,Bob通过HTTP服务器来获取。案例二:Alice通过HTTP发送,Bob也通过HTTP获取。 小结:邮件功能,是否就是HTML?大概是多了一层SMTP服务器吧。这其中的奥秘还要继续探索!我以为邮件只是保存到数据库,然后读取那么简单的呢!大概它有它的特殊性,与一般的网站有所不同,它需要SMTP相关协议吧!...
代码星球 代码星球·2020-04-06

TCP/IP FTP/TFTP

引言从一台计算机向另一台计算机传送文件是在连网或互联网环境中最常见的任务。而FTP和TFTP就是这样的协议。关于文件传输协议FTP?端口21使用服务TCP 【FTP模型】FTP连接?1.控制连接a.服务器在熟知端口21发出被动打开命令,等待客户。b.客户使用临时端口发出主动打开命令。2.数据连接数据连接使用服务器端的熟知端口20。a.客户使用一个临时端口发出被动打开。b.客户使用PORT命令把这个端口号发送给服务器。c.服务器收到这个端口号,并使用熟知端口20和临时端口号发出主动打开。FTP通信?两台计算机可以使用不同的操作系统、不同的字符集、不同的文件结构以及不同的文件格式。FTP必须使这种异构性得到兼容。FTP使用了两种解决问题的方法,一种用于控制连接,一种用于数据连接。1.在控制连接上的通信它使用NVT字符集【图示】2.在数据连接上的通信异构性问题可以通过文件类型、数据结构以及传输方式三个通信属性来解决。文件类型(ASCLL文件、EBCDIC文件、图像文件,非打印,TELNET)数据结构传输方式(流方式、块方式、压缩方式)【图示】FTP命令处理?接入命令(USER、PA...
代码星球 代码星球·2020-04-06

TCP/IP TELNET & SSH

快速导航远程登录示例关于远程登录?嵌入?用来控制远程服务器上运行的应用程序字符?转义?操作方式?关于SSH?远程登录示例关于远程登录?网络虚拟终端(NetworkVirtualTerminal,NVT)通过这个接口,TELNET客户把来自本地终端的字符(数据或命令)转换成NVT形式,然后交付给网络。【NVT概念图】嵌入?TELNET通过把控制字符嵌入到数据流中来实现数据和控制字符的发送在同一条连接上。为了把数据和控制字符区分开,每一个控制字符序列的前面要加上一个特殊的控制字符,称为IAC。比如输入了catfile1,结果多了一个a,成了catfilea1,这个时候就要回退。但是编辑工作必须在服务器上完成,这个时候回退字符被转化为两个控制字符IACEC,它嵌入到数据中,被发送到远程服务器。【嵌入概念图】用来控制远程服务器上运行的应用程序字符?字符  十进制二进制 意义IP(InternetProcess)244 11110100中断进程AO(AbortOutput)24511110101一场终止输出AYT(AreYouThere?)24611110...
代码星球 代码星球·2020-04-06

IOS中init方法都做了什么事?

一、概述在初始化使用init方法初始化时,会将以init开头的初始化方法,按顺序调用一遍。比如以下几个方法:1initWithFrame:2initWithNibName:3initWithStyle:PS:注意,在自定义Cell时,使用register注册一个Cell时,仅调用initWithStyle:方法。...

Eclipse在线安装spring-tool-suit插件

查看eclipse版本:Help–>AboutEclipse;如图1所示。 访问http://spring.io/tools/sts/all,复制在线安装url地址,不要下载ZIP文件,复制链接版本url地址可直接复制网址,不需要点击,点击反而是下载. 4.6版本:http://dist.springsource.com/release/TOOLS/update/e4.6/ 4.5版本:http://dist.springsource.com/release/TOOLS/update/e4.5/ 复制好网址后,打开eclipse–>help–>installnewsoftware,按下图提示,next下一步,直至安装成功 ...

使用Eclipse构建Maven项目

进入eclipse官网的下载页面:http://www.eclipse.org/downloads/根据你的操作系统具体情况选择相应的版本。我这里选择的是“EclipseIDEforJavaEEDevelopers”的Windows64Bit版本。下载到本地磁盘即可。把下载完成的“eclipse-jee-juno-SR2-win32.zip”解压缩到本地磁盘指定目录下。我这里是解压缩在D:盘根目录下。进入解压缩后的目录中,双击“eclipse.exe”即可打开Eclipse的工作界面。(注:Eclipse正常运行的前提是在系统变量中存在名为“JAVA_HOME”的变量,值为JDK的安装目录)。 进入Maven官网的下载页面:http://maven.apache.org/download.cgi选择当前最新版本,下载到本地,解压缩到本地磁盘D:下。 进入Maven安装目录下的conf子目录中,打开settings.xml进行配置修改。2.2.1.  修...

Gradle及eclipse插件安装

Gradle需要jdk7或以上版本,使用Java –version命令进行测试;Gradle自带了Groovy库,所以无需再安装Groovy,已经安装的Groovy会被Gradle忽略。解压Gradle至一个目录,如d:gradle3,即安装完成。下面可以配置环境变量。配置安装目录:GRADLE_HOME,值为Gradle的实际安装目录。配置path路径:在原来的path变量值后面增加;%GRADLE_HOME%in      运行gradle–v命令,输出显示Gradle的版本及本地环境配置。  3. 安装eclipse插件3.1.  安装插件buildship     在help菜单中点击EclipseMarketplace菜单项。      在搜索框中输入buildship关键字,结果中第一项即为gradle插件,点击insta...
代码星球 代码星球·2020-04-06
首页上一页...392393394395396...下一页尾页