php中最简单的字符串匹配算法


Posted in PHP onDecember 16, 2014

本文实例讲述了php中最简单的字符串匹配算法。分享给大家供大家参考。具体实现方法如下:

<?php 

/* 

最简单字符串匹配算法php实现方式 

 

T: ababcabc 

P: abc 

 

0.          1.          2. 

ababcabc    ababcabc    ababcabc 

|||          |||          ||| 

abc          abc          abc 

(X)          (X)          (O) 

 

3.          4.          5. 

ababcabc    ababcabc    ababcabc 

    

|||          |||          ||| 

    

abc          abc          abc 

    

(X)          (X)          (O) 

*/ 

 

$str="ababcabc"; 

$search="abc"; 

 

$strlen=strlen($str); 

$searchlen=strlen($search); 

 

//1.遍历$str字符串 

for($i=0;$i<$strlen;$i++){ 

    if($i+$searchlen>$strlen){ 

        echo '超出长度';break; 

    } 

 

    $match=true; 

 

     

//2.遍历要搜索的字符串$search,进行对比 

    for($j=0;$j<$searchlen;$j++){ 

 

        if($str[$i+$j]!=$search[$j]){ 

            $match=false; 

            break; 

        } 

        $k=$i+$j; 

        if($match){ 

            if($j==$searchlen-1){ 

                echo "{$str}第{$i}个位置开始为{$search}\n";break; 

            }

        } 

    } 

} 

?>

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
php桌面中心(一) 创建数据库
Mar 11 PHP
PHP 编写的 25个游戏脚本
May 11 PHP
PHP框架Swoole定时器Timer特性分析
Aug 19 PHP
php实现TCP端口检测的方法
Apr 01 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
php实现xml与json之间的相互转换功能实例
Jul 07 PHP
PHP入门教程之上传文件实例详解
Sep 11 PHP
php + nginx项目中的权限详解
May 23 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
Nov 29 PHP
Laravel如何创建服务器提供者实例代码
Apr 15 PHP
解决laravel 出现ajax请求419(unknown status)的问题
Sep 03 PHP
PHP使用openssl扩展实现加解密方法示例
Feb 20 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 #PHP
php输出金字塔的2种实现方法
Dec 16 #PHP
smarty缓存用法分析
Dec 16 #PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 #PHP
smarty表格换行实例
Dec 15 #PHP
PHP使用xmllint命令处理xml与html的方法
Dec 15 #PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 #PHP
You might like
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
2007/09/02 PHP
php 什么是PEAR?
2009/03/19 PHP
PHP 基本语法格式
2009/12/15 PHP
PHP运行模式的深入理解
2013/06/03 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
Thinkphp模板中截取字符串函数简介
2014/06/17 PHP
PHP命名空间(namespace)的动态访问及使用技巧
2014/08/18 PHP
smarty缓存用法分析
2014/12/16 PHP
php实现通用的从数据库表读取数据到数组的函数实例
2015/03/21 PHP
PHP常用处理静态操作类
2015/04/03 PHP
PHP获取文件扩展名的4种方法
2015/11/24 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
基于jQuery的计算文本框字数的代码
2012/06/06 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
通过$(this)使用jQuery包装后的方法或属性
2014/05/18 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
使用jquery/js获取iframe父子级、同级获取元素的方法
2016/08/05 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python中的time模块与datetime模块用法总结
2016/06/30 Python
使用WingPro 7 设置Python路径的方法
2019/07/24 Python
python RC4加密操作示例【测试可用】
2019/09/26 Python
python创建学生成绩管理系统
2019/11/22 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
中学教师培训制度
2014/01/31 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
为什么MySQL 删除表数据 磁盘空间还一直被占用
2021/10/16 MySQL