我的方法解析字符串并处理字符串中包含的信息。一个简单的例子是
$string=
"
user:name,password={$_POST['name']}, {$_POST['password']}(md5);
names:name=name;
";
$class->$method($string);
上面会做两个插入语句。第一个将在名为 user 的表中插入在 md5 中加密的用户名和密码。
第二个将在名称表中插入一个名称。我正在设置它以便可以转义字符。即,如果用户名是 p;ez。该字符串将具有 p\;ez。
我目前的方法如下
#get position of ;
$offsetSemi=stripos($s, ";");
#check if its escaped
if ($s[$offsetSemi-1]!='\\')
{
//not escaped
}
上述方法的问题在于它只会检查 ; 的第一个实例。我尝试的另一个解决方案是在 ; 上爆炸字符串。但是,这不起作用,因为它在所有实例上爆炸,包括逃脱的实例。我尝试的另一件事是使用下面的正则表达式爆炸
/[^\\\];/
问题是它之前在字符上爆炸;在所有未逃脱的实例上。有没有办法可以在所有实例上爆炸字符串;前面没有反斜杠?