2015-10-28 3 views
1

У меня есть строка:Заменить шаблон в PHP

CREATE TABLE IF NOT EXISTS `coupons` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `code` varchar(255) NOT NULL, 
    `off` int(11) NOT NULL, 
    `order` int(11) NOT NULL, 
    `value` tinyint(1) DEFAULT NULL, 
    `status` tinyint(1) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 

CREATE TABLE `currency` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `code` varchar(10) DEFAULT NULL, 
    `name` varchar(255) DEFAULT NULL, 
    `prefix` varchar(12) DEFAULT NULL, 
    `suffix` varchar(12) DEFAULT NULL, 
    `format` char(1) DEFAULT NULL, 
    `decimals` char(1) DEFAULT NULL, 
    `exchange` float(15,6) DEFAULT NULL, 
    `round` int(5) NOT NULL, 
    `published` tinyint(1) unsigned DEFAULT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 

И хотел бы заменить: "CREATE TABLE" в "CREATE TABLE IF NOT EXISTS". Как я могу это сделать?

Спасибо!

+2

Как это выглядите как однократное действие, инструмент «найти и заменить» в любом текстовом редакторе должен делать :) – Marcin

+0

Серьезно? Существует так много PHP [replace] (http://stackoverflow.com/questions/1072476/php-replace-but-alternate-replace-string) [строки] (http://stackoverflow.com/questions/2590044/php -replace-string-help) [вопросы] (http://stackoverflow.com/questions/3392508/replace-string-only-once-with-php-preg-replace) [уже] (http://stackoverflow.com/вопросы/3441000/PHP замены строка). С небольшим количеством поисков должно быть очевидно, что делать. Этот вопрос не имеет дополнительной ценности для сообщества. – cfi

ответ

3

В PHP (если вам действительно нужно сделать это программно) вы могли бы сделать что-то вроде этого (при условии, $string это переменная, содержащая как SQL команды):

$string = preg_replace('/CREATE\sTABLE\s+`/i', 'CREATE TABLE IF NOT EXISTS `', $string); 

Работы: https://gist.github.com/jpaljasma/8355c57cc5608c4c4ff8