Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Разбор строки
Форумы портала PHP.SU » PHP » Программирование на PHP » Разбор строки

Страниц (1): [1]
 

1. dembi - 05 Ноября, 2009 - 15:54:57 - перейти к сообщению
Добрый День, Всем!

У меня есть файл, который содержит данные в следующем формате:

1 test1
2 test2
3 test3
….
n testn

Вопрос,
Как мне рспарсить этот, файл чтобы я смог записать все эти данные в БД.
То есть, чтобы в конечном итоге у меня получилось следующее.

INSERT INTO TABLE tab (id, val) VALUE (‘$id’,’$val’)

Заранее спасибо за помощь.
2. Champion - 05 Ноября, 2009 - 16:09:05 - перейти к сообщению
explode()
3. JustUserR - 05 Ноября, 2009 - 16:30:22 - перейти к сообщению
dembi Да и не забывайте кодировать данные чтобы разделитель не встретился среди данных
4. dembi - 05 Ноября, 2009 - 16:45:14 - перейти к сообщению
Спасибо за ответ.

Я нашел следующее решение.
Если кому будет полезно, пользуйтесь:

ereg( )

Функция еrеg( ) ищет в заданной строке совпадение для шаблона. Если совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE. Синтаксис функции ereg( ):

int ereg (string шаблон, string строка [, array совпадения])

Код получился следующим для разбора файла:

$str=ereg("^([[:digit:]]*)\ ((.)*)",$str,$ger);

Теперь, переменная $ger – содержим масив совпадений
К примеру, echo $ger[2] будет содержать: test1

и т.д.

Еще раз спасибо Всем.
5. Nestor - 05 Ноября, 2009 - 22:14:17 - перейти к сообщению
ereg медленная штука...ИМХО лутше file() и explode()
6. JustUserR - 06 Ноября, 2009 - 09:07:05 - перейти к сообщению
dembi Имхо уж лучше PREG - они и бустрее и эффективнее Улыбка

 

Powered by ExBB FM 1.0 RC1