SoFunction
Updated on 2025-03-02

The simplest string matching algorithm in php

<?php
/*
The simplest string matching algorithm PHP implementation method
 
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. Iterate over $str string
for($i=0;$i<$strlen;$i++){
    if($i+$searchlen>$strlen){
echo 'out of length';break;
    }
 
    $match=true;
 
    
//2. Iterate over the string $search to search for and compare
    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}The {$i} position starts at {$search}\n";break;
            }
        }
    }
}
?>