Preg_replace экранирование знаков

NOT NULL

Новичок
Preg_replace экранирование знаков

В текстовом файле есть данные разделенные знаком табуляции (база данных фильтров для вездеходов), текстовый файл нужно импортировать в базу данных, но сначала перевести строковые значения в ID так как год, модель и объем которые хранятся в других таблицах. Т.е. файл такой:
PHP:
1987	YFM350FW Big Bear	350	K&N FILTRO OLIO	 11,32 
1988	YFM350FW Big Bear	350	K&N FILTRO OLIO	 11,32 
1989	YFM350FW Big Bear	350	K&N FILTRO OLIO	 11,32
год | модель | объем | описание | цена

Должно получится что-то типа:

PHP:
2	1	3	K&N FILTRO OLIO	 11,32 
3	1	3	K&N FILTRO OLIO	 11,32 
4	1	4	K&N FILTRO OLIO	 11,32
Вот код, которым я это делаю:

PHP:
<?php
require("core.php");
$file = "filtriolio.txt";
$string = file_get_contents($file);
$sql = "SELECT * FROM `shop_name`";
$result = mysql_query($sql);

while( $row = mysql_fetch_object($result) ){
  $string = preg_replace( '/'.$row->name . '[^\t]*/i', $row->id, $string );
}
  $fp = fopen($file, "w" );
  if( !fputs ( $fp , $string ) ){
	die("Can't write into the file");
  }
  fclose( $fp );
  echo "Done..";
?>
С годом и объемом проблем нет, проблема возникает с моделью, если в её имени встречается какой-нибудь знак типа . (точки) весь файл сразу уродуется естественно.

Подскажите как мне такие знаки экранировать, может быть кто-нибудь уже писал такую функцию?
 

NOT NULL

Новичок
chisto_tolyan
Порко мадонна диум песто пербакко кастелло ди мио брано кьямаре ин че сервести хамдураля! /Простите, погорячился/

P.S.
Действительно.
 

Кром

Новичок
Что то совершенно непонятно что куда ты переносишь. Из базы в файл или из файла в базу. Пишешь одно, код делает другое.
 

Фанат

oncle terrible
Команда форума
он заменяет в файле некие текстовые идентификаторы на id из базы
способ при этом, конечно, выбран более, чем оригинальный =)
я думаю, надо очень постараться, чтобы сделать это ещё более непроизводительно.
 

NOT NULL

Новичок
Фанат, Ну, как могу, так и делаю :)
А как можно было бы это сделать по другому?
 

Фанат

oncle terrible
Команда форума
NOT NULL
ну, уж, наверное, можно заменять тольков тех строках, которые ещё не заменили? а не пробегать по всему файлу каждый раз?
 

NOT NULL

Новичок
kvf77 А зачем мне implode? У меня и так строка, а не массив, или я что-то не понял?

-~{}~ 15.03.06 17:26:

Фанат
Можно, но и так сойдет, я это всего один раз должен сделать и все.
П.С.
Уже сделал.
 
Сверху