正则表达式教程

正则表达式入门 概念 字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行符,汉字等等。字符串是0个或更多个字符的序列。文本也就是文字,字符串。 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 支持 在最近的六十年中,正则表达式逐渐从模糊而深奥的数学概念,发展成为在计算机各类工具和软件包应用中的主要功能。不仅仅众多UNIX工具支持正则表达式,近二十年来,在WINDOWS的阵营下,正则表达式的思想和应用在大部分 Windows 开发者工具包中得到支持和嵌入应用!从正则式在Microsoft Visual Basic 6 或 Microsoft VBScript到.NET Framework中的探索和发展,WINDOWS系列产品对正则表达式的支持发展到无与伦比的高度,几乎所有 Microsoft 开发者和所有.NET语言都可以使用正则表达式。如果你是一位接触计算机语言的工作者,那么你会在主流操作系统(*nix[Linux, Unix等]、Windows、HP、BeOS等)、主流的开发语言(PHP、C#、Java、C++、VB、Javascript、Ruby以及python等)、数以亿万计的各种应用软件中,都可以看到正则表达式优美的舞姿。 以上内容引自百度百科 ...

July 22, 2014 · 2 min · Me

Python程序监控脚本

有些软件虽然卖的很贵,但是稳定性还是让人很无语,经常莫名其妙的崩溃,生产服务器怎么能允许这种事情发生! 一个监控程序运行的就这样诞生了,程序Python 2.7 思路很简单,先写一个监控的函数,判断是否在运行,然后循环调用N次,直到运行成功,实在不行,就发个通知或者记录下来 难点在于如何判断进程在运行。 思路也很简单,主要用到了这两个方法 os.popen os.system 他们两个都可以直接运行cmd或者shell中的命令,但是前者会返回输出的内容,可以做进一步的处理 而后者只是执行,并把结果打印出来。 下面是程序,注释已经很清晰了 #coding=utf-8 """ To check program if it is running @author PHPergao @time 2014-7-22 """ import re import os import time import urllib2 import urllib flag = 1 #check function def checkhct(): #tasklist也可换成linux下打印所有进程的命令 ps aux for line in os.popen('tasklist').readlines(): #判断用正则更准确,也可以使用find或者index判断 pattern = re.compile(r'qq.*', re.I) match = pattern.match(line) if(match): return True return False #repeat 3 times for x in xrange(0,3): if(checkhct() == False): print 'error' #程序路径 os....

July 22, 2014 · 1 min · Me

netbeans开启xdebug

一直在用everedit做开发,今天开始高大上,用一下netbeans 安装 在netbeans下载页面找到PHP版的netbeans,下载下来并安装,表忘了JRE也要装的 在xdebug下载页面下载对应PHP版本的xdebug,然后解压至php目录下的ext目录下,同时新建d:\xdebug文件夹 配置 PHP.INI 在phpinfo()页面中找到INI文件,在文件最后加入以下代码 ;注意:我们的版本号可能不同 zend_extension="ext\php_xdebug-2.2.5-5.4-vc9.dll" [Xdebug] ;是否开启自动跟踪 xdebug.auto_trace= On ;是否开启异常跟踪 xdebug.show_exception_trace= On ;是否开启远程调试自动启动 xdebug.remote_autostart= On ;是否开启远程调试 xdebug.remote_enable= On ;允许调试的客户端IP ;xdebug.remote_host= 192.168.1.1 ;远程调试的端口(默认9000) xdebug.remote_port=9000 ;调试插件dbgp xdebug.remote_handler=dbgp ;是否收集变量 xdebug.collect_vars= On ;是否收集返回值 xdebug.collect_return= On ;是否收集参数 xdebug.collect_params= On ;跟踪输出路径 xdebug.trace_output_dir="d:\xdebug" ;是否开启调试内容 xdebug.profiler_enable=On ;调试输出路径 xdebug.profiler_output_dir="d:\xdebug" ;调试的域名 xdebug.remote_host=localhost 修改以后重启服务器,看看有没有出现xdebug,如果出现了,那就成功了一大半 netbeans 设置的地方在tool->option里找到debug标签,在这里可以修改PHP.EXE的路径,还有调试的工具和端口号等。 注意 如果你用的远程调试,务必打开xdebug.remote_enable 如果你用的域名调试,那么请修改xdebug.remote_host为你的域名,不要忘了加引号,不用带http:// 如果总是显示等待xdebug,那么就换一个web浏览器试试,在tool->option->general里可以找到 如果还不行,请留言,老高和你一起搞! 调试 哈哈,这还用讲吗?上个图

July 18, 2014 · 1 min · Me

php-bbcode过滤

BBCODE,即BB代码,属于轻量级标记语言(Lightweight Markup Language)的一种,如字面上所显示的,它主要是使用在BBS、论坛、Blog等网络应用上。BBCode最初由Ultimate Bulletin Board讨论区系统发展出来,因此常见UBB代码的称呼。BBCode的语法通常为[标记]这种形式,即语法左右用两个中括号包围,以作为与正常文字间的区别。系统解译时遇上中括号便知道该处是BBcode,会在解译结果输出到客户端时转换成最为通用的HTML语法。 要过滤他有两个思路,一个是先转化为html,再用strip_tags即可,下面是具体函数 <?php function bb_parse($string) { $tags = 'b|i|size|color|center|quote|url|img'; while (preg_match_all('`\[(' . $tags . ')=?(.*?)\](.+?)\[/\1\]`', $string, $matches)) { foreach ($matches[0] as $key => $match) { list($tag, $param, $innertext) = array( $matches[1][$key], $matches[2][$key], $matches[3][$key] ); switch ($tag) { case 'b': $replacement = "<strong>$innertext</strong>"; break; case 'i': $replacement = "<em>$innertext</em>"; break; case 'size': $replacement = "<span style=\"font-size: $param;\">$innertext</span>"; break; case 'color': $replacement = "<span style=\"color: $param;\">$innertext</span>"; break; case 'center': $replacement = "<div class=\"centered\">$innertext</div>"; break; case 'quote': $replacement = "<blockquote>$innertext</blockquote>" ....

July 16, 2014 · 1 min · Me

markdown语法简介

最近把之前的文章都用markdown重写了一遍 之前寄希望于md自动转换,可惜转换后的格式惨不忍睹,同时发现我写得的文章也是惨不忍睹 ::>_<:: 下面简单写一下md的语法 ...

July 16, 2014 · 1 min · Me

PHP所有函数列表

说所有函数有点夸张,有错误请指正! ...

July 15, 2014 · 3 min · Me

现在都用md,咱也不落后

markdown是个好东西!让我们可以集中精力去写文章,提高文章质量,不过有几个方面还是值得吐槽的: 超链接的target属性不能自定义 在WP中插入图片太麻烦 没有很好的支持或者支持标准不一 待补充 推荐一个好工具:stackedit 还有他的升级版:stackedit-beta 2014年10月19日补充: markdown标准语法请参考http://commonmark.org

July 10, 2014 · 1 min · Me

thinkphp验证码不显示

今天解决了一个验证码不显示的问题,值得大家注意 ...

July 10, 2014 · 1 min · Me

PHP面向对象的那些事儿

PHP的面向对象在进入5版本后得到了加强,很多好用的特性都得到了支持。下面总结了一些开发时用到的简单的概念,希望对你有帮助 ...

July 10, 2014 · 1 min · Me

在thinphp的模板中使用U方法传递参数

在模板里生成URL如果需要用到模板里的参数时,使用下面代码即可 {:U('Index/getInfo',array('userid'=>$userid))} 如果变量有嵌套,那就要用"[]“代替模板中的”." {:U('Index/getInfo',array('userid'=>$user['id']))} 

June 26, 2014 · 1 min · Me