我有这样的字符串格式:
1PR009427S0000754
首先让我解释一下这种格式。如果您看到“1P”,则表示它是产品部件号的开头。从代表产品序列号的“S”开始。使用这种字符串格式,我可以毫无问题地将一个字符串拆分或分解成两个,直到遇到这种字符串格式。
1P0005-00118-33S3S216
1PS-35C-602S6510873143
1P0005-00115-SPS3S216
如果你们注意到,对于这些新格式,他们在一个字符串中有几个“S”,问题是当我分解字符串时,我使用1P告诉程序它是零件号的开头,并且尽快因为它看到的“S”是产品序列号的开头。我担心的是,当我分解新字符串时,由于字符串中出现了几个 S,我得到了错误的部件号和序列号的结果。
这是我的程序示例
if($_POST['submit'])
{
$text = explode("<br />",nl2br($_POST['pn']));
foreach ($text as $key => $value)
{ //start foreach statements
$precage = "0617V";
$presym = "[)>";
$partn = "1P";
$serial = "S";
$match = preg_match('/[)>0617V1PS]/', $value);
if($match == true)
{
$value2 = substr($value[1], 5);
$result = explode("1P", $value2);
$fin_pnresult = explode("S", $result[1]) ;
$serial1 = strrchr($value2, $serial);
$fin_serial = substr($serial1, 1);
$cageresult = substr($value2, 0, strpos($value2, "1P"));
}
}
?>
谢谢你们的帮助。