PHP REGEX: узнайте, как форматировать запрос MySQL, как (плагин подсветки синтаксиса для jquery) - PullRequest
0 голосов
/ 03 марта 2012

как я говорю в заголовке я учусь, как сделать подсветку синтаксиса для MySQL кода с помощью регулярных выражений в PHP

вот мой код, который я только что попытался сделать

$css    = '<style> body{font-family:tahoma;font-size:12px;}</style>';
$lista  = 'select|insert|update|delete|drop|truncate|alter' ;
$lista2 = 'into|from|values|desc|asc|on' ;
$lista3 = 'where|order by|limit|having|group by|union|left join|right join|full join|outer join|inner join' ;
$code   = preg_replace('/('.$lista.')/i','<br /><span style="color:#f00;">$1</span>',$this->query);
$code   = preg_replace('/('.$lista3.')/i','<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0f0">$1</span>',$code);
$code   = preg_replace('/('.$lista2.')/i','<span style="color:#00f">$1</span>',$code).$css;

мой результат был таким: img

syntax result here

я хочу использовать простой способ сделать это

но я не должен использовать какой-либо плагин, просто regex, чтобы понять это тоже

1 Ответ

0 голосов
/ 03 марта 2012

Я согласен с Billy Moon по поводу парсера, но если вы действительно хотите использовать регулярные выражения, ваш близок к работе, вы просто забыли границы слов

$code   = preg_replace('/\b('.$lista.')\b/i','...',$this->query);
$code   = preg_replace('/\b('.$lista3.')\b/i','...',$code);
$code   = preg_replace('/\b('.$lista2.')\b/i','...', $code);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...