Разбить строку

rafaello

Новичок
Всем привет.
Подскажите пожалуйста, как разбить строку по разделителю, если ситуация нестандартная, а именно, вот такая строка:
HTML:
Adi AD81SG 6057;Adi AD81SG;Горнолыжные маски Adidas AD81SG;12962,66;;12 месяцев;;;Универсальный мешочек;Пластик;Унисекс;;;Маска;;;;1;;"Возможна установка дополнительного клипа с диоптральными линзами. ";"Возможна установка дополнительного клипа с диоптральными линзами. ";Каталог >> Спортивные очки >> Горнолыжные маски;;;;;10336.jpg;;0,00;0x0x0;Adidas;-;-;-;-;-
Надо разбить по разделителю ";"
Но дело в том, что там встречаются позиции в кавычках и внутри этих кавычек разделитель не надо учитывать, то есть все, что в кавычках - это одно целое.
Еще раз.
Разбить по разделителю ";", но только если этот разделитель без кавычек.
Файл громадный и вручную все это дело корректировать проблематично!
Спасибо заранее...
 

rafaello

Новичок
елки, век живи, век учись. А я тыкался все с explode()
Спасибо однако!
Интересно, в обоих вариантах правильно показывает количество элементов массива, что важно!

PHP:
print_r(str_getcsv($str,";"));
print_r(str_getcsv($str,";",'"'));
 

rafaello

Новичок
Чтобы не открывать новый тикет, еще подскажите пожалуйста!
Есть две строки

PHP:
$str_1 = 'Adi AD81SG 6057';
$str_2 = 'Adi AD81SG';
Причем, начальная часть у обоих строк всегда совпадает.
Мне надо вырезать из первой строки вторую и вернуть оставшуюся часть, чтобы получилось
PHP:
$str = ' 6057';
 

Тугай

Новичок
Код:
preg_match('%'.$str_2.'(.*)$%iu', $str_1, $m);
$str = $m[1];
или проще
Код:
$str = substr($str_1, strlen($str_2));
 
Последнее редактирование:

rafaello

Новичок
Спасибо.
Вот такой вариант тоже подходит
PHP:
echo substr($str_1, strlen($str_2));
 
Сверху