Помогите с регулярными выражениями

программирование php regexp

Есть дамп mysql, соответственно может выглядеть как-то так (просто для примера):
INSERT INTO table VALUES("Добавьте ярлыки", "Добавьте, ярлыки", "Добавьте ярлыки \"Добавьте\", ярлыки", NULL, "1", NULL, NULL, "666");

Подскажите, как можно получить массив со всеми полями, то есть такой:
1 -> "Добавьте ярлыки"
2 -> "Добавьте, ярлыки"
3 -> "Добавьте ярлыки \"Добавьте\", ярлыки"
4 -> NULL
5 -> 1
6 -> NULL
7 -> NULL
8 -> "666"

Совсем никак не получается, похоже я зациклился на неправильной идее... ;(
Ответы:
сейчас решаю проблему кучей str_replace, но подозреваю, что есть более красивое решение
Ты лучше скажи какую проблему ты хочешь решить с помощью массива.
Может найдется другое решение.
Тут это не важно.
После получения массива, я обработаю нужные элементы массива (читай - поля в дампе) и соберу его обратно в строку дампа.
Может будет проще обработать не нужные элементы массива, а нужные поля в таблице через sql-запросы, восстановив дамп в бд?
Если действительно нужно, уточни допустимые символы в значениях полей(либо каждого из полей).
Видимо как-то так:
$str = 'INSERT INTO table VALUES("Добавьте ярлыки", "Добавьте, ярлыки", "Добавьте ярлыки \"Добавьте\", ярлыки", NULL, "1", NULL, NULL, "666");
INSERT INTO table VALUES("Добавьте ярлыки", "Добавьте, ярлыки", "Добавьте ярлыки \"Добавьте\", ярлыки", NULL, "1", NULL, NULL, "666");
INSERT INTO table VALUES("Добавьте ярлыки", "Добавьте, ярлыки", "Добавьте ярлыки \"Добавьте\", ярлыки", NULL, "1", NULL, NULL, "666");';
preg_match_all('!INSERT INTO table VALUES\((.*?)\);!',$str,$ok);
for($i=0;$i<count($ok[1]);$i++){
$res = split(',',$ok[1][$i]);
$row_fields[]=$res;
}
print_r($row_fields);
а блин split не пойдет...
мдя без 2-х str_replace никак чето...
с циклом должно получиться быстрее и проще для разработки - так что самое то.
Если в конструкции
Но у меня все-таки встречный вопрос: для чего делать такой разбор ???
ise-dvp: специально написал эти куски, чтобы показать, что они будут :)
идеальным был бы вариант, добавлять все во временную mysql базу, но к сожалению, им никак не воспользоваться :(
:)
>То есть я разбираю INSERT на поля, те поля где есть кириллица обрабатываю и собираю все обратно.
Но ЗАЧЕМ? :))


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.