php正则的使用

函数描述preg_filter执行一个正则表达式搜索和替换preg_grep返回匹配模式的数组条目preg_last_error返回最后一个PCRE正则执行产生的错误代码preg_match_all执行一个全局正则表达式匹配preg_match执行一个正则表达式匹配preg_quote转义正则表达式字符preg_replace_callback_array执行一个正则表达式搜索并且使用一个回调进行替换preg_replace_callback执行一个正则表达式搜索并且使用一个回调进行替换preg_replace执行一个正则表达式的搜索和替换preg_split通过一个正则表达式分隔字符串 preg_filterpreg_grep<?php$array=array(1,2,3.4,53,7.9,.4);$fl_array=preg_grep("/^(d+)?.d+$/",$array);print_r($fl_array); preg_mactch_all<?php$userinfo="Name:<b>PHP</b><br&g...
代码星球 代码星球·2020-04-02

php实现队列

<?php//双向队列的实现classDoubleEndedQueue{public$elements;publicfunction__construct(){//析构函数,创建一个数组$this->elements=array();}publicfunctionpush($element){//array_unshift()函数在数组开头插入一个或多个元素。array_unshift($this->elements,$element);}publicfunctionpop(){returnarray_shift($this->elements);//PHParray_shift()函数删除数组中的第一个元素_}publicfunctioninject($element){//给数组末尾追加元素,无指定下标,默认为数字$this->elements[]=$element;}publicfunctioneject(){array_pop($this->elements);//PHParray_pop()函数删除数组中的最后一个元素}}//实例化该类,测...
代码星球 代码星球·2020-04-02

php 递归删除文件夹

/***递归删除文件方法一param$path文件路径**/functiondelAll($path){$path=str_replace('\','/',$path);//去除反斜杠if(!is_dir($path)){return"dirisnotexists!";}$adir=scandir($path);foreach($adiras$k=>$v){if($v!="."&&$v!=".."){if(is_dir($path."/".$v)){delAll($path."/".$v);@rmdir($path."/".$v);}else{@unlink($path."/".$v);}}}@rmdir($path);}$path="D:WWWphpyun";delAll($path);  //方法二functiondel_dir($dir){if(!is_dir($dir)){returnfalse;}$handle=opendir($dir);while(($file=readdir($handle))!==false){if($file!="."&...
代码星球 代码星球·2020-04-02

一‘php文件系统

一、获取文件信息——FILE——,获取当前文件的绝对路径,包含文件名,__DIR__等价于dirname(__FILE__),不包含文件名的路径, ...
代码星球 代码星球·2020-04-02

spring boot高性能实现二维码扫码登录(下)——订阅与发布机制版

 前言   基于之前两篇(《springboot高性能实现二维码扫码登录(上)——单服务器版》和《springboot高性能实现二维码扫码登录(中)——Redis版》)的基础,我们使用消息队列的订阅与发布来实现二维码扫码登录的效果。 一、实现原理 1.参考微信的二维码登录机制首先,请求后端拿到二维码。然后通过http长连接请求后端,并获取登录认证信息。这时,当二维码被扫,则记录seesion并跳转至内部页面。如果没有扫码二维码,则线程会等到30秒(也有的说是20秒),如果再此期间,二维码被扫,则唤醒线程。如果二维码没有被扫,并且30秒等待结束,则前端页面再次请求服务器。2.线程等待机制我使用CountDownLatch来控制线程的等待和唤醒。控制器返回Callable<>对象来达到“非阻塞”的目的。3.订阅与广播机制参考:https://spring.io/guides/gs/messaging-redis/使用redis的消息队列机制,当然使用别的中间件来做消息...

spring boot高性能实现二维码扫码登录(中)——Redis版

前言   本打算用CountDownLatch来实现,但有个问题我没有考虑,就是当用户APP没有扫二维码的时候,线程会阻塞5分钟,这反而造成性能的下降。好吧,现在回归传统方式:前端ajax每隔1秒或2秒发一次请求,去查询后端的登录状态。  一、支付宝和微信的实现方式 1.支付宝的实现方式每隔1秒会发起一次http请求,调用https://securitycore.alipay.com/barcode/barcodeProcessStatus.json?securityId=web%7Cauthcenter_qrcode_login%7C【UUID】&_callback=light.request._callbacks.callback3如果获取到认证信息,则跳转进入内部系统。如图所示   2.微信的实现方式每隔1分钟调用一次https://login.wx.qq.com/cgi-bin/mmwebwx-bin/login?loginicon=true&uuid=【UUID】&tip=0&...

spring boot高性能实现二维码扫码登录(上)——单服务器版

前言   目前网页的主流登录方式是通过手机扫码二维码登录。我看了网上很多关于扫码登录博客后,发现基本思路大致是:打开网页,生成uuid,然后长连接请求后端并等待登录认证相应结果,而后端每个几百毫秒会循环查询数据库或redis,当查询到登录信息后则响应长连接的请求。然而,如果是小型应用则没问题,如果用户量,并发大则会出现非常严重的性能瓶颈。而问题的关键是使用了循环查询数据库或redis的方案。假设要优化这个方案可以使用java多线程的同步集合+CountDownLatch来解决。 一、环境 1.java8(jdk1.8)2.maven3.3.93.springboot2.0 二、知识点 1.同步集合使用2.CountDownLatch使用3.httpajax4.zxing二维码生成 三、流程及实现原理 1.打开网页,通过ajax请求获取二维码图片地址2.页面渲染二维码图片,并通过长连接请求,获取后端的登录认证信息3.事先登录过APP的手机扫码二维码,然后APP请求服务器端的API接口,把用户认证信息传递到服务器中。4....

php逐行读取textarea批量提交

$t=$_POST['text'];var_dump($t);//按换行符拆分为数组$arr=explode("",$t);var_dump($arr);$_sql="INSERTINTO`tablename`(`text`)";foreach($arras$value){//还有要转义插入的数据$_sql=$_sql."VALUES('$value'),";}//去除最后一个,号$SQL=substr($_sql,0,-1);echo$SQL; ...

图书管理系统-python简单实现

importsysbooks=[['红楼梦','曹雪芹',50],['三国义','罗贯中',55],['西游记','吴承恩',60],['水浒传','施耐庵',65]]users=[['Tom','123'],['Mike','321']]flag=Falsedeflogin():print('请输入用户名:',end='')username=input()print('请输入用户密码:',end='')password=input()if[username,password]inusers:print('登录成功!')flag=Truefun()else:print('用户名不存在或密码错误!请重新登录!')defregister():username=input('请输入用户名:')password=input('请输入用户密码:')users.append([username,password])print('注册成功!')defmain():whileTrue:print('**********************')print('*欢迎来到图书管理系统*')print('...

python实现猜拳游戏

importrandom;guess_list=['石头','剪刀','布'];rules=[['石头','剪刀'],['剪刀','布'],['布','石头']];computer=random.choice(guess_list);print(computer);people=input("石头,剪刀,布:").strip();isTrue=True;whileisTrue:ifpeoplenotinguess_list:people=input("石头,剪刀,布:").strip();else:isTrue=False;ifpeople==computer:print('draw');elif[computer,people]inrules:print('computeriswin');else:print('peopleiswin'); ...
代码星球 代码星球·2020-04-02

JSONP实现跨域

1.AJAX跨域访问<scripttype="text/javascript"src="http://manage.jt.com/js/jquery-easyui-1.4.1/jquery.min.js"></script><scripttype="text/javascript">$(function(){alert("测试访问开始!!!!!")$.ajax({url:"http://manage.jt.com/web/testJSONP",type:"get",dataType:"jsonp",//返回值类型callback(data)//jsonp:"callback",//指定参数名称//jsonpCallback:"hello",//指定回调函数名称success:function(data){alert(data.id);alert(data.name);//转化为字符串使用//varobj=eval("("+data+")");//alert(obj.name);}});})</script>2.后端@Controllerp...
代码星球 代码星球·2020-04-02

实现一个优先级队列

问题:怎样实现一个按优先级排序的队列?并且在这个队列上面每次pop操作总是返回优先级最高的那个元素解决方案:利用heapq模块 1#priorityqueuealgorithm23#Thismoduleprovidesanimplementaionoftheheapalgorithm4importheapq56#Thisclassprovidespriorityqueuealgorithm7classPriorityQueue:8def__init__(self):9self._queue=[]10self._index=()1112defpush(self,item,priority):13heapq.heappush(self._queue,(-priority,self._index,item))14self._index+=11516defpop(self):17returnheapq.heappop(self._queue)[-1]181920classItem:21def__init__(self,name):22self.name=name2324def__re...

GUI实例:利用Tkinter实现简单文本编辑器

1fromtkinterimport*2fromtkinter.scrolledtextimportScrolledText34defload():5withopen(filename.get())asfile:6contents.delete('1.0',END)7contents.insert(INSERT,file.read())89defsave():10withopen(filename.get(),'w')asfile:11file.write(contents.get('1.0',END))1213top=Tk()14top.title("SimpleEditor")1516contents=ScrolledText()17contents.pack(side=BOTTOM,expand=True,fill=BOTH)1819filename=Entry()20filename.pack(side=LEFT,expand=True,fill=X)2122Button(text='Open',command=load).pack(side=LEFT)23Button(tex...

c++ 实现 http 上传和下载

代码下载地址:  http://download.csdn.net/detail/mtour/8243527    最近写了个程序需要用到http通讯,由于flash空间比较小,没有考虑libcurl库,用c++封装了一个http类,实现了http 文件上传和下载     [cpp] viewplain copy  #include <stdio.h>    #include <unistd.h>    #include <string.h>    #include <net/if.h>    #include <arpa/inet.h>  &...

纯C++实现的HTTP请求封装(POST/GET)

纯C++实现的HTTP请求(POST/GET),支持windows和linux, 进行简单的封装,方便调用。实现如下:#include"HttpConnect.h"#ifdefWIN32#pragmacomment(lib,"ws2_32.lib")#endifHttpConnect::HttpConnect(){#ifdefWIN32//此处一定要初始化一下,否则gethostbyname返回一直为空WSADATAwsa={0};WSAStartup(MAKEWORD(2,2),&wsa);#endif}HttpConnect::~HttpConnect(){}voidHttpConnect::socketHttp(std::stringhost,std::stringrequest){intsockfd;structsockaddr_inaddress;structhostent*server;sockfd=socket(AF_INET,SOCK_STREAM,0);address.sin_family=AF_INET;address.sin_port=htons...
首页上一页...594595596597598...下一页尾页