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

yipeiwu_com5年前PHP代码库

本文实例讲述了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扩展imagick

PHP建图通常都用GD库,因为是内置的不需要在服务器上额外安装插件,所以用起来比较省心,但是如果你的程序主要的功能就是处理图像,那麼就不建议用GD了,因为GD不但低效能而且能力也比较弱,...

PHP中include和require的区别实例分析

先编辑command.php文件 echo 'hello'.PHP_EOL; 然后编辑console.php文件 for($i=1;$i<=3;++$i){ requ...

php checkbox 取值详细说明

设我们有一个html页面,代码如下: 复制代码 代码如下: <FORM method="post" action="checkTest.php"> <INPUT nam...

php处理复杂xml数据示例

本文实例讲述了php处理复杂xml数据的方法。分享给大家供大家参考,具体如下: <?php $xml = <<< XML <?xml v...