@DjimiDjimi

Как считать строки файла между заданных значений?

Считываю файл в переменную $file_goods = file('goods.txt');
Файл имеет следующий вид
много строк
##@@&&
#
$$$ADDASPECTSCHMS
1;Характеристики;Характеристики;
$$$ADDASPECTS
1;1;Характеристики;Характеристики;
$$$ADDTAXRATES
1;НДС 0%;НДС 0%;0;0;
2;НДС 10%;НДС 10%;0;10;
3;НДС 18%;НДС 18%;0;18;
4;Без НДС;Без НДС;0;0;
$$$ADDTAXGROUPS
1;НДС 0%;НДС 0%;
$$$ADDTAXGROUPRATES
1;1;1;0;
$$$ADDTAXGROUPS
2;НДС 10%;НДС 10%;
$$$ADDTAXGROUPRATES
1;2;2;0;
$$$ADDTAXGROUPS
3;НДС 18%;НДС 18%;
$$$ADDTAXGROUPRATES
1;3;3;0;
$$$ADDTAXGROUPS
4;Без НДС;Без НДС;
$$$ADDTAXGROUPRATES
1;4;4;0;

$$$ADDASPECTVALUES

$$$REPLACEQUANTITYWITHOUTSALE
12;;Детское питание;Детское питание;0;;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;;;;;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;;
422;;Батончик Гербер 25г Злаки/Яблоко/Виноград;Батончик Гербер 25г Злаки/Яблоко/Виноград;58;5;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;12;1;;;;;;4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
423;;Батончик Гербер 25г Яблоко/Банан;Батончик Гербер 25г Яблоко/Банан;58;2;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;12;1;;;;;;4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
77;;Пюре;Пюре;0;;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;;;;12;0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;;
757;;Десерт 90г Ябл-Бан-Клубн ФН;Десерт 90г Ябл-Бан-Клубн ФН;53;6;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2479;;Пюре 100г Груша ФН;Пюре 100г Груша ФН;41,5;3;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2480;;Пюре 100г Фруктовый салатик ФН;Пюре 100г Фруктовый салатик ФН;41,5;2;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2481;;Пюре 100г Яблоко ФН;Пюре 100г Яблоко ФН;41,5;3;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2482;;Пюре 100г Яблоко-Творог ФН;Пюре 100г Яблоко-Творог ФН;41,5;2;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2483;;Пюре 130г Ябл-Бан-Груш-Злаки ФН;Пюре 130г Ябл-Бан-Груш-Злаки ФН;58,5;3;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2484;;Пюре 130г Ябл-Персик-Злаки ФН;Пюре 130г Ябл-Персик-Злаки ФН;58,5;3;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2485;;Пюре 130г Ябл-Ягоды-Овс.хлопья ФН;Пюре 130г Ябл-Ягоды-Овс.хлопья ФН;58,5;4;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2486;;Пюре 80г Брокколи ФН;Пюре 80г Брокколи ФН;45,5;1;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2487;;Пюре 80г Морковь ФН;Пюре 80г Морковь ФН;45,5;3;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2488;;Пюре 80г Овощной салатик ФН;Пюре 80г Овощной салатик ФН;45,5;3;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2489;;Пюре 80г Цветная капуста ФН;Пюре 80г Цветная капуста ФН;45,5;3;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2490;;Пюре 90г Ябл-Абр-Слив ФН;Пюре 90г Ябл-Абр-Слив ФН;50,5;6;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2491;;Пюре 90г Ябл-Бан-Твор ФН;Пюре 90г Ябл-Бан-Твор ФН;50,5;6;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2492;;Пюре 90г Яблоко ФН;Пюре 90г Яблоко ФН;50,5;5;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ФН;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
4000;;Пюре Агуша 200г Груша стекло;Пюре Агуша 200г Груша стекло;36,5;2;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ООО Арс;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
4001;;Пюре Агуша 200г Яблоко стекло;Пюре Агуша 200г Яблоко стекло;36,5;2;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ООО Арс;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2493;;Пюре Банан 90г Агуша Я сам;Пюре Банан 90г Агуша Я сам;45,5;5;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
4002;;Пюре ВБД Агуша 90г Ябл/Клуб/Творог;Пюре ВБД Агуша 90г Ябл/Клуб/Творог;29,5;5;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ООО Арс;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
4003;;Пюре ВБД Агуша 90г Ябл/Твор/Печенье;Пюре ВБД Агуша 90г Ябл/Твор/Печенье;29,5;4;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ООО Арс;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2496;;Пюре Груша 90г Агуша Я сам;Пюре Груша 90г Агуша Я сам;45,5;5;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2499;;Пюре морковь 120г Сады Придонья ст.;Пюре морковь 120г Сады Придонья ст.;26;4;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ИП Сочнев;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2501;;Пюре Мультифрукт 90г Агуша Я сам;Пюре Мультифрукт 90г Агуша Я сам;45,5;5;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2507;;Пюре тыква 120г Сады Придонья ст.;Пюре тыква 120г Сады Придонья ст.;26;4;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ИП Сочнев;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;
2509;;Пюре ФН 80г Говядина халяль;Пюре ФН 80г Говядина халяль;56;3;;0,1,1,1,1,1,1,1,1,0,1,0,0,1;;;;1;1;;;77;1;;;;;;4;;;ООО Импульс;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0;0;;2;

$$$REPLACEASPECTREMAINSWITHOUTSALE

$$$ADDBARCODES
4603566776301;121;;1;1;
4603566777308;132;;1;1;
46140920;142;;1;1;
5413149333468;144;;1;1;
5413149333437;145;;1;1;
4605922009313;146;;1;1;


Считать требуется только то, что находится между строками $$$REPLACEQUANTITYWITHOUTSALE и $$$REPLACEASPECTREMAINSWITHOUTSALE
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
thewind
@thewind
php программист, front / backend developer
$fileName = 'goods.txt';
$startKey = '$$$REPLACEQUANTITYWITHOUTSALE';
$finishKey = '$$$REPLACEASPECTREMAINSWITHOUTSALE';
$fileContent = file_get_contents($fileName);
$startPosition = stripos($fileContent, $startKey) + strlen($startKey);
$fileGoods = explode(PHP_EOL, substr($fileContent, $startPosition, stripos($fileContent, $finishKey) - $startPosition));
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы