公告: 最近网站更新,清除部分友链!如有疑问,请联系我!

关注我的微信公告平台

关注我的微信公告号

个人博客源码
一个炫酷的flash网站模板
兼容所有浏览器的页面加载进度条
利用jQuery设置 鼠标滑过图片居中放大和缩小
边栏过渡效果
jQuery制作相册
kmp算法

kmp算法

  kmp算法的特点是主串不回溯,主要求出模式串的next值来计算下次比较的字符位置,关于next数组值可以看字符串匹配的KMP算法  下面是利用c++求出模式串的next数组值//string pattern = "abcabd"; //int next[pattern.length()]; void nextVal(int* next, string str) { int i = 0; int j = -1; next[0] = -1; while(i = pattern.length()) { start = i - pattern.length(); break; } } cout 
所属栏目:算法 时间:2017-02-27浏览量:173
字符串匹配之首尾匹配算法

字符串匹配之首尾匹配算法

  首尾匹配算法和简单匹配算法的流程相同,唯一不同的是首尾匹配算法先将主串的第一个字符与模式串的第一个字符比较,相同则将主串的最后一个字符与模式串的最后一个字符比较,相同则将主串的第二个字符与模式串的第二个字符比较,相同再比较倒数第二个字符,这样从两边向中间进行比较,以此来减少回溯的次数。  c++代码如下#include <iostream> #include <string> using namespace std; int main() {     string str = "abcbcdaabc";     string pattern = "bcda";     int pos = 0;     int num = str.length() - pattern.length();     char stack[pattern.length()];     while (pos <= num) {         int f = 0;         int t = pattern.length() - 1;         //进行首尾比较         while (f <= t) {             if (str[pos+f] != pattern[f] || str[pos+t] != pattern[t]) {                 break;             } else {                 stack[f] = str[pos+f];                 stack[t] = str[pos+t];                 f++;                 t--;             }         }         if (f > t) {             break;         } else {             pos ++;         }     }     cout<< stack <<endl; }
所属栏目:算法 时间:2017-02-12浏览量:217
字符串匹配之简单匹配算法

字符串匹配之简单匹配算法

  简单匹配算法就是从主串的第一个字符开始与模式串中的第一个字符比较,如相等,则继续比较后续字符,否则,从主串的第二个字符开始重新与模式串的第一个字符进行比较。匹配过程见下图:  c++代码如下:#include <iostream> #include <string> using namespace std; int main() {     //主串     string str = "abcbcda";     //模式串     string pattern = "cd";         int i = 0;     int j =0;     int pos = -1;   //记录主串之前的位置     string stack;   //匹配到的字符内容     while (i < str.length() && j < pattern.length()) {         //如果相等则向前进一位         if (str[i] == pattern[j]) {             if (pos < 0)                 pos = i;             stack += str[i];             i++;             j++;         }         //否则回归到主串匹配前的位置         else {             if (pos < 0) i++;             else i = pos + 1;             pos = -1;             j = 0;             stack = "";         }     }     cout << stack <<endl;     return 0; }
所属栏目:算法 时间:2017-02-12浏览量:177
eclipse安装phpunit进行单元测试

eclipse安装phpunit进行单元测试

  下面我将每一步重要的几点都截图下来了,如果有什么疑问欢迎留言或者其他方式联系我!   因为需要php环境的支持,所以我们现在指定我们php.exe的路径  下面是在ecplise中显示phpunit的窗口           下面新建phpunit测试文件        下面对phpunit的测试文件进行运行测试                
所属栏目:Web基础 时间:2016-11-05浏览量:501
命令行覆盖上一条输出

命令行覆盖上一条输出

 今天遇到一个问题,需要在命令行下显示进度,我开始的写法是这样的 for ($i=0; $i
所属栏目:Web基础 时间:2016-11-04浏览量:306
Snoopy修改版支持https抓取

Snoopy修改版支持https抓取

Snoopy原先需要安装cURL才能抓取https,现在我将里面修改了一下,无需安装其他扩展就可以抓取https网页!下载密码:db68
所属栏目:软件专区 时间:2016-10-18浏览量:380
php执行定时任务的几种方法

php执行定时任务的几种方法

 关于这方面我也在学习中,目前介绍一下我知道的执行定时任务的方法  一,php的自身执行定时任务ignore_user_abort(true); set_time_limit(0); while(true) { //关闭任务 if (file_get_contents('./stop.txt') == 'stop') { break; }  file_put_contents('./test.txt', date('Y-m-d H:i:s', time()), FILE_APPEND); sleep(2); } 用php自身来执行定时任务,我感觉不是很好,他没有提供关闭任务的操作!我上面通过判断另一个文件内容的差异来关闭任务的!  二,windows系统下执行定时任务 1,php文件//index.php file_put_contents(D:\workdir\ignore\test.txt', date('Y-m-d H:i:s', time()), FILE_APPEND);  2,新建一个.bat文件   格式 php.exe的路径 -q php文件路径D:\WAMP\php5.6\php.exe -q D:\workdir\ignore\index.php  3,开始菜单 搜索  任务计划程序 创建基本任务,然后就根据他的说明操作,都是可视化操作就不多说啦!  三,linux系统下执行定时任务  这里我们需要用到一个shell命令 crontab  1,php文件//index.php file_put_contents('/root/test.txt', date('Y-m-d H:i:s', time()), FILE_APPEND);   2,建立定时任务#打开一个当前用户的定时文件 crontab -e 在文件中写入#这里默认每分钟执行一次 * * * * * /usr/bin/php /home/wwwroot/default/index.php/usr/bin/php 是php安装位置,可通过which php 命令查看/home/wwwroot/default/index.php 是php文件位置,不一定要在wwwroot文件夹下,随便哪里都可以任务写完后要 :wq 保存  3,建立定时任务后,你要查看你的定时任务服务是否开启 service crond status    如果显示没有开启,如下进行开启 service crond start注:1,如果没有安装cron服务的需要安装cron服务(网上教程很多)    2,crontab的一些命令        crontab -e 新建任务        crontab -l 查看任务        crontab -r 删除任务
所属栏目:深入PHP 时间:2016-10-06浏览量:339
jQuery模拟post跳转到新页面并提交数据

jQuery模拟post跳转到新页面并提交数据

  其实整个思路就是新建一个表单元素然后将需要提交的值放进input中提交就好啦!var value; //需要提交的值 $('body').append(''); $('form').append('') .append('').css('display', 'none'); $('form').submit();    现在有一种情况,如果需要提交的值是一个对象的话,你没办法直接把对象放到value里面,所以我们需要将这个对象转化成json格式!我们可以用php来转化也可以用jQuery的第三方插件来转换,下面以php转化为例//json.php if (isset($_POST['obj'])) { echo json_encode($_POST['obj']); }$.ajax({ url : 'json.php', type : 'post', data : { obj : obj //需要处理的对象 }, success : function(data) { $('body').append(''); $('form').append('') .append('').css('display', 'none'); $('form').submit(); } });//receive.php if (isset($_POST['name'])) { $arr = json_decode($_POST['name'], true); //将json数据转化为数组,这样我们就可以直接这个数据啦 }
所属栏目:浅谈jQuery 时间:2016-09-29浏览量:396
对象克隆以及深复制和浅复制

对象克隆以及深复制和浅复制

  对象的克隆顾名思义就是复制一个对象,但是复制对象分两种情况,一种是两个变量都指向一个对象,这是浅复制;一种是两个变量指向两个对象,这是深复制!  一,浅复制 class A {   public $a = 1;   public $b = 2;  }  $a = new A();  $b = $a;    $a->a = 2;  echo $b->a;    //输出2  复制对象后,a对象属性的改变也会引起b属性的改变    二,深复制 class A {   public $a = 1;   public $b = 2;     //当对象被克隆时调用,这时$b->b的值是3   public function __clone() {   $this->b = 3;   }    }  $a = new A();  $b = clone $a;    $a->a = 2;  echo $b->a;    //输出1  复制对象后,a对象属性的改变不会引起b属性的改变 
所属栏目:深入PHP 时间:2016-09-21浏览量:265

最热文章百度富文本编辑器UEditor安装配置全过程

    网站开发时富文本编辑器是必不可少的,他可以让用户自行编辑内容的样式然后上传到后台!下面我们来介绍如何安装使用百度富文本编辑器! 一、下载并且设置百度富文本编辑器的样式    你可以去百度UEditor的官网去下载编辑器,网址是http://uedit......阅读全文

联系我

姓 名:王业楼

微 博:点击这里关注我的微博

Q  Q:点击这里给我发消息

邮 箱:wangyelou@yeah.net

最新评论