Мои методы анализируют строки и делают вещи с информацией, содержащейся в строке.
простой пример будет
$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
}
проблема с вышеуказанным методом заключается в том, что он будет проверять только первый экземпляр;.
другое решение, которое я попробовал, было взорвать строку; однако это не сработает, потому что оно взорвалось во всех случаях, включая те, которые были спасены. другая вещь, которую я попробовал, была взрывом с регулярным выражением ниже
/[^\\\];/
Проблема в том, что она взорвалась на персонаже раньше; на всех случаях, которые не были спасены. Есть ли способ, которым я могу взорвать строку во всех случаях; которым не предшествует обратная косая черта?