Python :用两个栈实现队列

转自:http://blog.csdn.net/Lynette_bb/article/details/75092745牛客网上的剑指offer的在线编程: 用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。[python] viewplain copy # -*- coding:utf-8 -*-  class Solution:      def __init__(self):          self.stack1 = []          self.stack2 = []      ...

微信小程序中canvas实现水平、垂直居中方法

微信小程序中canvas实现水平、垂直居中方法由于我最近做一个刮刮卡,需要将文字在canvas中水平、垂直居中wxml<canvastype='2d'id="myCanvas"width="300"height="150">使用canvas2d构建画布蓝色线为水平中线红色线为垂直中线文本设置方法fillText方法为canvas设置文本方法,使用如下所示ctx.fillText('文本内容',x,y)x为横轴坐标y为纵轴坐标上例将文本内容设置在canvas画布的坐标位置上,跳脱web的开发思维,我们可以认为X点相对于文本有左,中,右三种布局,Y点相对于文本有上、中、下的布局,这样就很好理解文本在canvas上是如何绘制了水平居中找到X轴的中点位置,如上图,在150px这个点上注意X点相对于文本的位置垂直居中找到Y轴的中点位置,如上上张图,在75px这个点上注意Y点相对于文本的位置ctx.fillStyle='#aaa'ctx.font='bold30px"GillSansExtrabold"'ctx.textBaseline='middle'ctx.fillText('文本...

PHP扩展开发--02.包裹第三方的扩展

背景也许最常见的PHP扩展是那些包裹第三方C库的扩展。这些扩展包括MySQL或Oracle的数据库服务库,libxml2的XML技术库,ImageMagick或GD的图形操纵库。在本节中,我们编写一个扩展,同样使用脚本来生成骨架扩展,因为这能节省许多工作量。这个扩展包裹了标准C函数fopen(),fclose(),fread(),fwrite()和feof().环境搭建利用ext_skel脚本在ext./原代码目录执行下面的命令:$./ext_skel--extname=myfile--proto=myfile.def添加扩展函数修改头文件php_myfile.h,添加对外接口PHP_FUNCTION(file_open);PHP_FUNCTION(file_eof);PHP_FUNCTION(file_close);PHP_FUNCTION(file_read);PHP_FUNCTION(file_write);修改myfile.c//myfile_functions添加对外接口信息constzend_function_entrymyfile_functions[]={PHP_FE(...

PHP扩展开发--01.编写一个helloWorld扩展

为什么要用C扩展C是静态编译的,执行效率比PHP代码高很多。同样的运算代码,使用C来开发,性能会比PHP要提升数百倍。另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据,C扩展可操作的范围更广。创建扩展骨架##本例用的php版本的是5.3.3cdphp-5.3.3/ext/./ext_skel--extname=myfun--proto=myfun.def##执行成功后会生成myfun的编译文件lsmyfun/config.m4config.w32CREDITS.cvsignoreEXPERIMENTALmyfun.cmyfun.phpphp_myfun.htests修改config.m4config.m4中dnl为注释的意思##动态编译选项,通过.so的方式链接,去掉dnl注释PHP_ARG_WITH(myfun,formyfunsupport,[--with-myfunIncludemyfunsupport])##静态编译选项,通过enable来启用,去掉dnl注释PHP_ARG_ENABLE(myfun,whethertoenablemyfunsupp...

PHP扩展--taint检测隐藏漏洞

简介Taint可以用来检测隐藏的XSScode,SQL注入,Shell注入等漏洞,并且这些漏洞如果要用静态分析工具去排查,将会非常困难,比如对于如下的例子:<?phpecho$_GET["name"];?>对于请求:http://localhost/?name=222静态分析工具,往往无能为力,而Taint却可以准确无误的爆出这类型问题.Warning:Main::test()[function.echo]:Attempttoechoastringthatmightbetaintedintaint安装wgethttp://pecl.php.net/get/taint-1.2.2.tgztarzxvftaint-1.2.2.tgzcdtaint-1.2.2/usr/local/php/bin/phpize./configure--with-php-config=/usr/local/php/bin/php-configmake&&makeinstall配置php.ini[taint]extension=taint.sotaint.enable=1taint.e...

PHP扩展--opcache安装及配置

简介Optimizer+是Zend开发的闭源但可以免费使用的PHP优化加速组件,是第一个也是最快的opcode缓存工具。现在,Zend科技公司将Optimizer+在PHPLicense下开源成为ZendOpcache。ZendOPcache通过opcode缓存和优化提供更快的PHP执行过程。它将预编译的脚本文件存储在共享内存中供以后使用,从而避免了从磁盘读取代码并进行编译的时间消耗。同时,它还应用了一些代码优化模式,使得代码执行更快。当解释器完成对脚本代码的分析后,便将它们生成可以直接运行的中间代码,也称为操作码(OperateCode,opcode)。Opcodecache的目地是避免重复编译,减少CPU和内存开销。如果动态内容的性能瓶颈不在于CPU和内存,而在于I/O操作,比如数据库查询带来的磁盘I/O开销,那么opcodecache的性能提升是非常有限的。现代操作码缓存器(Optimizer+,APC2.0+,其他)使用共享内存进行存储,并且可以直接从中执行文件,而不用在执行前“反序列化”代码。这将带来显着的性能加速,通常降低了整体服务器的内存消耗,而且...

PHP扩展--XHProf优化PHP程序

简介XHProf是一个轻量级的分层性能测量分析器。在数据收集阶段,它跟踪调用次数与测量数据,展示程序动态调用的弧线图。它在报告、后期处理阶段计算了独占的性能度量,例如运行经过的时间、CPU计算时间和内存开销。函数性能报告可以由调用者和被调用者终止。在数据搜集阶段XHProf通过调用图的循环来检测递归函数,通过赋予唯一的深度名称来避免递归调用的循环。XHProf包含了一个基于HTML的简单用户界面(由PHP写成)。基于浏览器的用户界面使得浏览、分享性能数据结果更加简单方便。同时也支持查看调用图。XHProf的报告对理解代码执行结构常常很有帮助。比如此分层报告可用于确定在哪个调用链里调用了某个函数。XHProf对两次运行进行比较(又名“diff”报告),或者多次运行数据的合计。对比、合并报告,很像针对单次运行的“平式视图”性能报告,就像“分层式视图”的性能报告。安装/配置编译安装wgethttp://pecl.php.net/get/xhprof-0.9.4.tgztar-zxvfxhprof-0.9.4.tgzcdxhprof-0.9.4/cdextension//usr/local/p...

PHP扩展--vld查看opcode代码

vld安装wgethttp://pecl.php.net/get/vld-0.13.0.tgztarzxvfvld-0.13.0.tgzcdvld-0.13.0/usr/local/php/bin/phpize./configure--with-php-config=/usr/local/php/bin/php-config--enable-vldmake&&makeinstall配置php.iniextension=vld.so运行结果来自为知笔记(Wiz) ...

PHP扩展--Oracle客户端(oci8)安装

下载Oracle客户端官方下载地址:LinuxX86-64同意协议,下载以下文件:oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpmoracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm安装rpm-ivhoracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpmrpm-ivhoracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpmbasic默认安装在/usr/lib/oracle/下devel默认安装在/usr/include/oracle/下安装PHP扩展cdphp-5.3.3/ext/oci8phpizeexportLD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/:$LD_LIBRARY_PATHexportORACLE_HOME="/usr/lib/oracle/11.2/client64/"exportCFLAGS="-I/...

PHP扩展--Suhosin保护PHP应用系统

Suhosin是一个PHP程序的保护系统。它的设计初衷是为了保护服务器和用户抵御PHP程序和PHP核心中,已知或者未知的缺陷。Suhosin有两个独立的部分,使用时可以分开使用或者联合使用。第一部分是一个用于PHP核心的补丁,它能抵御缓冲区溢出或者格式化串的弱点;第二部分是一个强大的PHP扩展,包含其他所有的保护措施。下载安装补丁##高版本不需要,折中选择是否打补丁wgethttp://download.suhosin.org/suhosin-patch-5.3.3-0.9.10.patch.gzgunzipsuhosin-patch-5.3.3-0.9.10.patch.gzcdphp-5.3.3/patch-p1-i../suhosin-patch-5.3.3-0.9.10.patch./configure--with-php-config=/usr/local/bin/php-configmakemakeinstall安装扩展wgethttp://download.suhosin.org/suhosin-0.9.37.1.tar.gztarzxvfsuhosin-0.9.37.1...

PHP扩展--Yaf框架安装

安装/配置编译安装wgethttp://pecl.php.net/get/yaf-2.3.5.tgztar-zxvfyaf-2.3.5.tgzcdyaf-2.3.5/cdextension//usr/local/php-5.3.3/bin/phpize./configure--with-php-config=/usr/local/php-5.3.3/bin/php-configmakemakeinstall修改php.ini文件[yaf]extension=yaf.soyaf.environ=developyaf.library=/home/www/public_html/libraryyaf.cache_config=0yaf.forward_limit=5以上完成后重启apache,可以看到yaf扩展如果出现报错/usr/include/php/ext/pcre/php_pcre.h:29:18:error:pcre.h:Nosuchfileordirectory安装下pear再重新编译yuminstallpcre-develmakeclean来自为知笔记(Wiz)...

PHP扩展--APC缓存安装与使用

apc安装wgethttp://pecl.php.net/get/APC-3.1.13.tgztarzxvfAPC-3.1.13.tgzcdAPC-3.1.13/usr/local/php/bin/phpize./configure--with-php-config=/usr/local/php/bin/php-configmake&&makeinstall来自为知笔记(Wiz)...

Php扩展--protocolbuffers消息打包

安装/配置编译安装wgethttp://pecl.php.net/get/protocolbuffers-0.2.6.tgztar-zxvfprotocolbuffers-0.2.6.tgzcdprotocolbuffers-0.2.6//usr/local/php-5.3.3/bin/phpize./configure--with-php-config=/usr/local/php-5.3.3/bin/php-configmakemakeinstall修改php.ini文件[protocolbuffers]extension=protocolbuffers.so以上完成后重启apache,可以看到protocolbuffers扩展来自为知笔记(Wiz)...

Php扩展--seasLog日志扩展安装

安装/配置编译安装wgethttp://pecl.php.net/get/SeasLog-1.4.4.tgztar-zxvfSeasLog-1.4.4.tgzcdSeasLog-1.4.4/cdextension//usr/local/php-5.3.3/bin/phpize./configure--with-php-config=/usr/local/php-5.3.3/bin/php-configmakemakeinstall修改php.ini文件[seaslog]extension=seaslog.soseaslog.default_basepath=/tmp/logseaslog.default_logger=php_seaslogseaslog.disting_type=1seaslog.disting_by_hour=0seaslog.use_buffer=0seaslog.buffer_size=100seaslog.level=0seaslog.trace_error=1seaslog.trace_exception=1以上完成后重启apache,可以看到seaslog...

PHP系统编程--03.PHP进程信号处理

PHP的pcntl扩展提供了信号处理的功能,利用它可以让PHP来接管信号的处理,在开发服务器端守护进程方面,信号处理至关重要。函数原型boolpcntl_signal(int$signo,callback$handler[,bool$restart_syscalls=true])第一个参数是信号ID第二个参数是信号发生时回调的PHP函数。第三个参数是是否restart,是否重新注册此信号。这个参数如果为false,那此信号只注册处理一次。pcntl_signal的实现<?php//信号处理需要注册ticks才能生效,这里务必注意//PHP5.4以上版本就不再依赖ticks了declare(ticks=1);functionsig_handler($signo){switch($signo){caseSIGUSR1:echo"SIGUSR1";break;caseSIGUSR2:echo"SIGUSR2";break;default:echo"unknow";break;}}//安装信号触发器器pcntl_signal(SIGUSR1,"sig_handler");pcntl_si...
首页上一页...640641642643644...下一页尾页