php 获取客户端的ip、地理信息、浏览器信息、本地真实ip

<!--?php//作用取得客户端的ip、地理信息、浏览器、本地真实IPclassget_gust_info{////获得访客浏览器类型functionGetBrowser(){if(!empty($_SERVER['HTTP_USER_AGENT'])){$br=$_SERVER['HTTP_USER_AGENT'];if(preg_match('/MSIE/i',$br)){$br='MSIE';}elseif(preg_match('/Firefox/i',$br)){$br='Firefox';}elseif(preg_match('/Chrome/i',$br)){$br='Chrome';}elseif(preg_match('/Safari/i',$br)){$br='Safari';}elseif(preg_match('/Opera/i',$br)){$br='Opera';}else{$br='Other';}return$br;}else{return"获取浏览器信息失败!";}}////获得访客浏览器语言functionGetLang(){if(!empt...

php使用strip_tags过滤所有html标签,并保留特定HTML标签的方法

过滤所有html标签:strip_tags($str);保留特定HTML标签(此处保留<p>、<b>,其他html标签全部清除):strip_tags($str,"<p><b>"); ...

PHP+jsonp 跨域实例

PHP+jsonp跨域实例 本文简单介绍PHP+jsonp跨域实例:a.comindex.html<!doctypehtml><html><head><metacharset="utf-8"><title>test</title><scriptsrc="jquery-3.2.1.min.js"></script><!--自己下载--><scripttype="layer/2.4/layer.js"></script><!--自己下载--><script>$(document).ready(function(){$("#btn").click(function(k){varformData=$("form").serializeArray();//序列化name/value$.ajax({type:'GET',url:'http://b.com/jsonp.php',dataType:'jsonp',//类型data:for...
开发笔记 开发笔记·2023-05-15

php+xdebug+dbgp远程调试(多人)

创建DBGP服务配置如果已经有人配置好,其他人如果也想要调试的话,只需按照这里的2和3配置。调试到下载页面,下载python版本的dbgp到服务器上。解压后执行pydbgpproxy。如果提示找不到dbgp模块,则编辑该文件。在96行左右有这么一块代码:candidate_paths=[dirname(this_dir),#Komodosourcetreelayoutjoin(dirname(this_dir),pythonlib),]把join(dirname(this_dir),pythonlib)改为join(this_dir,pythonlib)再执行。如果执行成功,会有类似于以下的输出:[root@localhostdbgp]#./pydbgpproxy-i0.0.0.0:9001-d9000INFO:dbgp.proxy:startingproxylisteners.appid:11203INFO:dbgp.proxy:dbgplisteneron127.0.0.1:9000INFO:dbgp.proxy:IDElisteneron0.0.0.0:9001服务器上编辑php...

C#正则应用

private int IsDigitOrNumber(string str){    if(System.Text.RegularExpressions.Regex.IsMatch(str,@"(?i)^[0-9a-z]+$"))        return 1;    else return 0;}...
代码星球 代码星球·2023-05-06

thinkphp实现sql like模糊查询实例

目前使用thinkphp框架进行项目开发的人越来越多了,由于其封装性较好,导致了很多纯PHP开发的部分不易上手,本文实例即以like模糊查询为例对此加以说明。这里主要通过举例来说明用法:ThinkPHP可以支持直接使用字符串作为查询条件,但是大多数情况推荐使用索引数组或者对象来作为查询条件,因为会更加安全。一、使用字符串作为查询条件这是最传统的方式,但是安全性不高,例如:代码如下:1$User =M("User"); //实例化User对象2 $User->where('type=1ANDstatus=1')->select();最后生成的SQL语句是代码如下:1SELECT * FROM think_user WHERE type=1 AND status=1如果进行多字段查询,那么字段之间的默认逻辑关系是逻辑与AND,但是用下面的规则可以更改默认的逻辑判断,通过使用_logic定义查询逻辑:代码如下:1$User =M(&qu...

php+redis实现超时取消订单功能

业务场景:秒杀案例秒杀业务逻辑:多个用户同时抢单,通过mysql行锁抢到的用户进入待支付页面(倒计时)。当用户没有支付订单超时时则取消该订单并归还库存。应用thinkphp+redis+workerman(可以自定义命令常驻)1、thinkphp安装workerman。这里就过了,thinkphp手册去找。2、安装好redis及扩展。用宝塔的直接搞就完了,过。3、生产者:用户创建订单向redis插入一条订单数据。$redis=newRedis();$redis->connect('127.0.0.1',6379);//$redis->auth('密码');//redis有密码就加/***seckill_time为列队名称*time()+$seckill['pay_time']为到期时间戳*$newSeckillOrder->id为订单id,可以json字符串存储*/$redis->zAdd('seckill_time',time()+$seckill['pay_time'],$newSeckillOrder->id);4、消费者:这里我们需要一个常驻内存一...

手机号码正则表达式

Regex regex = new Regex(@"^1d{10}$"); // 注意 ^$。if (regex.IsMatch(phoneNumber)){// 匹配。}手机号码正则表达式:^1d{10}$。只限定了第一个字符为1,不像有些一定要限定13开头、15开头,我觉得没必要,以后号段一增加,这正则表达式就得改,多麻烦啊。...
代码星球 代码星球·2023-04-16

C# 正则表达式使用示例-替换

C#正则表达式使用示例-匹配C#正则表达式使用示例-替换本示例是提取出字符串中的航班代码(假设为两个字母+四个数字),然后为其加上超链接,链接到其他网站,以查询航班信息。returnRegex.Replace(s,"([A-Z]{2}[0-9]{4})","<ahref="https://www.xxx.com/s?word=$1"target="_blank">$1</a>",RegexOptions.Multiline|RegexOptions.IgnoreCase); C#正则表达式使用示例-匹配C#正则表达式使用示例-替换...

C# 正则表达式使用示例-匹配

C#正则表达式使用示例-匹配C#正则表达式使用示例替换usingSystem.Text.RegularExpressions;//示例一Matchmatch=Regex.Match(str,">(.*?)<");match.Groups[0].Value;//匹配的整个字符串match.Groups[1].Value;//匹配的第一个括号中的内容//示例二//多个匹配foreach(MatchmatchinRegex.Matches(str,pattern)){match.Groups[0].Value;}C#正则表达式使用示例-匹配C#正则表达式使用示例替换...

C# 正则表达式解析 [3,7) 这种带括号的字符串

usingSystem.Text.RegularExpressions;Matchmatch=Regex.Match("[3,7)",@"^([|()(.*),(.*)()|])$");//要进一步限定括号中的只能是数字,则可以替换.*为d*。if(match.Success){stringstr="";for(inti=0;i<match.Groups.Count;i++){str+=""+i+":"+match.Groups[i].Value;}MessageBox.Show(str);}显示结果为:0:[3,7)1:[2:33:74:)正则表达式中,用作转义符,将括号转义为普通字符,用Regex.Match匹配,若结果为Success则匹配成功,再用Groups[i].Value取出括号匹配的各项值。用^、$限定了行的开头和结尾,即头尾要完全匹配,并不是说只匹配字符串其中的一部分。当然,如果要进一步限定括号中的只能是数字,则可以替换.*为d*。相关阅读白话解释正则表达式中参数g、m、i的作用涉及正则表达式验证字符串长度时别忘了^、$正则表达式匹配次-懒惰匹配...

C# 中正则表达式进行忽略大小写的字符串替换

在C#里要进行忽略大小写的字符串替换,用string的Replace是很难做到的,即使花了天大的力气做到了,效率仍然是很低的,正确的方法应该是使用正则表达式。使用正则表达式,首先需要引用命名空间:usingSystem.Text.RegularExpressions;然后,非常简单,使用:Regex.Replace(字符串,要替换的子串,替换子串的字符,RegexOptions.IgnoreCase);就可以达到目的了,其中最后的参数RegexOptions.IgnoreCase即为指明忽略大小写。但是,我现在要为一组字符串中的所有匹配的子字符串加上高亮显示(就是让它的字体样式和字符串其它的部分不一样),用下面的语句在字符串两端插入html标签,确实可以实现高亮,但高亮显示的就成了搜索子串的搜索字符串了,大小写与原文有差异。打个比方:我在“第十三种Asp.net实现”中搜索的keyString为"asp",替换后的字符串就成了“第十三种asp.net实现”,而不是希望的“第十三种 Asp.net实现”。DocumentResume[i]=Regex.Replace(hitDo...

linux之CentOS将php和mysql命令加入环境变量

PHP和mysql命令没有加入到环境变量之前,执行“php-v”命令查看当前php版本信息时时,则会提示命令不存在的错误。为了使用方便,需要将php和mysql命令加到系统命令中。下面我们详细介绍一下在linux下将php和mysql加入到环境变量中的方法(假设php和mysql分别安装在/usr/local/webserver/php/和/usr/local/webserver/mysql/中)。方法一:直接运行命令exportPATH=$PATH:/usr/local/webserver/php/bin和exportPATH=$PATH:/usr/local/webserver/mysql/bin使用这种方法,只会对当前会话有效,也就是说每当登出或注销系统以后,PATH设置就会失效,只是临时生效。方法二:执行vi~/.bash_profile修改文件中PATH一行,将/usr/local/webserver/php/bin和/usr/local/webserver/mysql/bin加入到PATH=$PATH:$HOME/bin一行之后这种方法只对当前登录用户生效方法三:修改/et...

如何分析php-cgi进程占用cpu资源过多负载高的原因

服务器环境:RedhatLinux5.5,nginx, phpfastcgi在此环境下,一般php-cgi运行是非常稳定的,但也遇到过php-cgi占用太多cpu资源而导致服务器响应过慢,所遇到的php-cgi进程占用cpu资源过多的原因有:一些php的扩展与php版本兼容存在问题:实践证明eAccelerater与某些php版本兼容存在问题,具体表现是启动php-cgi进程后,运行10多分钟,奇慢无比,但静态资源访问很快,服务器负载也很正常(说明nginx没有问题,而是php-cgi进程的问题),解决办法就是从php.ini中禁止掉eAccelerater模块,再重启php-cgi进程即可。 程序中可能存在死循环,导致服务器负载超高(使用top指令查看负载高达100+),需要借助Linux的proc虚拟文件系统找到具体的问题程序。 php程序不合理使用session,这个发生在开源微博记事狗程序上,具体表现是有少量php-cgi进程(不超过10个)的cpu使用率达98%以上,服务器负载在4-8之间,这个问题的解决,仍然需要借助Linux的proc文件系统...

在CentOS上把PHP从5.4升级到5.5

摘要:本文记录了在CentOS6.3上,把PHP从5.4.8升级到5.5.13的过程。在我做的一个项目中,最近我对生产服务器上的一系列系统软件进行了升级,包括Git、Nginx、MySQL和PHP。这篇文章讲的是升级PHP的过程,其他软件的升级,可见下面列出的文章。在我加入这个项目之前,服务器上的PHP已经安装设置好了,我只是正常使用而已。现在过去1年了,所有的开发工作都告一段落,有时间升级服务器上的软件了。升级这种事情是应当经常做的,倒不是为了追最新版本,而是当正式版本发放出来的时候,应该及时更新,以便获得最新的更正、补丁,避免服务器上的漏洞,减少安全隐患。升级是在今年6月13-14日进行的,到今天才有空做个记录,便于日后参考。计划就是预案,就是事先的准备(包括心理上的)、更明细的步骤、对各种情况及对意外的对策,当然,我们不可能面面俱到,预测一切,不然就成神了,所以要随时准备脱稿演出,thinkoutofthebox。2.1了解情况计划要有针对性,所以要先”踩点儿“。通过在系统上,用find之类的命令,或者通过网页用phpinfo()函数来显示关于PHP的信息...
开发笔记 开发笔记·2023-03-14
首页上一页...23456...下一页尾页