Re: string matching position.
quick&dirty solution
<?php
$data=<<<EOD
code = 1
subcode 65 values 06101;06102;06103;06106;06108;06109
subcode 69 values 07003;07004;07007;07008;07009;07012;07013
code = 2
subcode 65 values 61215;61218;61558;61587
subcode 69 values 83662;83667;83668
EOD;
// search function
function smart_search($data,$code,$value)
{
preg_match("/^code = {$code}[^=]+subcode (\\d+) values
[;\\d]*$value/m",$data,$res);
return isset($res[1]) ? $res[1] : false;
}
// test it
foreach(array('06101'=>1,'06103'=>1,'06109'=>1,'07 009'=>1,'07013'=>1
,'61215'=>2,'61587'=>2,'83668'=>2) as $value=>$code)
echo $value.' '.$code.' : '.smart_search($data,$code,$value)."\n";
?>
I think here was mistake in string 'subcode 69 values 83662:83667;83668'
|