Разделение массива

Andykalinin

Новичок
Попытаюсь еще раз.
Есть массив. В котором много блоков. Каждый из блоков начинается /AAA/ т.е. сочетанием 3-х букв и заканчивается /999/, мне необходимо выделить эти блоки...
Т.е. скак вытянуть все что между /ААА/ и /999/

-~{}~ 29.11.04 21:13:

Автор оригинала: asm
либо я не догоняю либо ты плохо обьясняешь. Одно из двух... :)
Видимо действительно не совсем я правильно объяснил, вот пример блока
Код:
/Àáåðäèí/Abe/Àáåðäèí /Øîòëàíäèÿ/Mordovorotens club/  /Àëåêñàíäð Îãîðîäíèêîâ/Íèæíèé Íîâãîðîä /Ðîññèÿ/[email protected]/  /33000/45/6/3855305/1063000/2075/1/3/7/  /0/0/208/1/1/1/1/1/1/3/3/1/  /42/47/4/4/  /1/Ìèëàí Áàëàðèê/×åõèÿ/ÂÐ/23/57/34/89/95/34/99/3735/21/20/20/20/20/20/35/20/34/40/27/0/0/1/7/0/12/0/567/62/72/0/0/0/0///  /2/Ñåáàñòüÿí Õåíðèêññîí/Øâåöèÿ/ÖÔ/22/71/32/66/94/32/99/4758/17/28/20/20/27/20/20/37/23/20/20/0/0/1/5/2/0/2/619/55/11/0/0/0/0///  /4/Ìàðê Íîóáë/Àíãëèÿ/ÖÏ/18/41/17/96/92/17/100/836/3/20/20/20/20/20/20/20/20/20/20/0/31/0/0/0/0/0/0/0/0/0/0/0/0/sc-Àáåðäèí/2004-09-21/  /5/Àëåêñàíäåð Äàéìîíä/Øîòëàíäèÿ/ËÇ/22/47/24/100/95/24/100/1084/7/20/20/20/20/20/20/20/20/20/20/0/7/0/3/0/0/0/600/0/0/0/0/0/0/sc-Àáåðäèí/2004-09-12/  /6/Ìàðñåëó Æîçå Ïëåò÷/Áðàçèëèÿ/ÏÏ/17/44/12/95/96/12/100/510/1/20/20/20/20/20/20/20/20/20/20/0/92/0/0/0/0/0/0/0/0/0/0/1/0/sc-Áîðóññèÿ (Ì)/2004-05-02/  /7/Êîýí Äàýðäåí/Áåëüãèÿ/ÖÏ/23/50/38/83/95/38/99/4240/29/40/40/23/40/20/20/27/21/20/20/0/0/1/5/1/0/1/627/97/4/1/0/0/0///  /8/Ìàðèî Ñòàíè÷/Õîðâàòèÿ/ËÏ/21/47/21/95/95/21/100/1099/6/24/22/31/20/20/20/20/21/20/20/0/35/0/1/0/0/0/600/39/0/0/0/700/0///  /9/Äýâèä Î`Áðàéàí/Øîòëàíäèÿ/ÖÇ/23/50/39/92/95/38/100/4345/28/20/20/20/20/50/38/30/22/20/20/0/0/1/6/0/0/0/612/110/2/0/0/0/0///  /10/Êîñòàñ Êîíñòàíòèíèäèñ/Ãðåöèÿ/ÖÏ/25/40/45/94/94/35/99/1934/24/20/28/23/30/25/20/27/23/20/20/0/21/0/3/1/0/1/609/134/13/1/0/0/0///  /11/Âèâàëäî/Áðàçèëèÿ/ÖÇ/24/49/35/64/93/35/99/2530/20/20/20/20/20/40/21/20/20/20/20/0/14/0/4/0/0/0/606/78/0/1/0/0/0///  /12/Ìîõàììåä Õóññåéí/ÎÀÝ/ÏÇ/23/49/30/97/94/30/99/1988/14/20/20/20/20/39/20/21/20/20/20/0/7/0/5/0/0/0/603/25/0/0/0/0/0/sc-13/2004-02-04/  /13/Ìàðê Âàãåíìåéêåðñ/Áåëüãèÿ/ÏÏ/25/59/38/85/96/38/100/3720/26/22/22/39/20/20/20/24/21/20/20/0/0/1/6/1/0/1/624/71/2/0/0/0/0///  /14/Èâî Óëèõ/×åõèÿ/ÖÔ/18/43/14/96/95/14/100/554/2/20/20/20/20/20/20/20/20/20/20/0/92/0/0/0/0/0/0/0/0/0/0/1/0/sc-Áîðóññèÿ (Ì)/2004-05-12/  /15/Ðîìàí Áèëè÷åíêî/Ýñòîíèÿ/ÏÔ/22/50/29/91/95/28/100/1949/11/22/20/20/20/20/20/25/20/20/20/0/0/1/2/0/0/0/599/69/9/0/0/2700/0///  /16/Êîëèí Õåíäðè/Øîòëàíäèÿ/ÖÇ/24/46/35/94/96/34/100/2254/19/20/20/20/20/40/20/25/20/20/20/0/0/1/3/0/0/0/616/81/1/0/0/4300/0///  /17/Ðè÷àðä Ôîñòåð/Øîòëàíäèÿ/ÖÏ/21/52/20/97/95/20/100/1139/5/20/20/20/20/21/20/20/40/20/20/0/7/0/3/0/0/0/601/0/0/0/0/0/0/sc-Àáåðäèí/2004-06-02/  /18/Ìàðòèí Ñòîëë/Ãåðìàíèÿ/ËÇ/24/57/33/90/93/33/100/2824/18/20/20/20/20/25/20/39/20/20/20/0/0/1/7/0/0/0/618/50/2/2/0/0/0///  /19/Àøèê Ýìðå/Òóðöèÿ/ÖÇ/25/57/46/89/96/44/97/5317/47/20/26/20/20/42/40/39/31/20/20/0/0/1/5/0/0/0/617/116/4/2/0/0/0///  /20/Õóöàí Ñåáàñòüÿí/Ðóìûíèÿ/ÂÐ/26/45/30/96/95/30/100/1165/13/20/20/20/20/20/20/20/20/28/26/0/35/0/1/0/0/0/600/30/29/0/0/0/0///  /21/Ëîðåíñ Àéäî/Ãàíà/ÖÔ/25/41/51/89/94/36/100/2472/29/40/26/20/29/20/28/29/25/20/20/0/0/1/7/1/0/1/600/156/77/1/0/0/0///  /22/Ìëàäåí Ïåòðè÷/Øâåéöàðèÿ/ÖÔ/23/51/42/88/94/40/99/4999/33/40/20/20/32/23/26/40/22/20/20/0/0/1/6/3/0/3/621/97/40/1/0/0/0///  /23/ßí Ëÿøåð/Ôðàíöèÿ/ÖÏ/25/47/44/91/95/39/100/3427/32/40/38/27/24/20/20/40/24/20/20/0/0/1/6/4/0/4/640/131/24/0/0/0/0///  /24/Êðèñòèàí Óëõåëìññîí/Øâåöèÿ/ËÏ/24/64/37/83/95/36/99/4257/24/30/39/20/21/33/20/20/20/20/20/0/0/1/7/3/0/3/623/89/5/0/0/0/0///  /25/Ìàéê Çîííåâåëä/Ãîëëàíäèÿ/ÏÇ/24/50/44/91/96/42/100/4524/36/20/20/20/20/41/20/31/20/20/20/0/0/1/5/0/0/0/596/120/0/1/1/0/0///  /999/
Где Abe в первой строке это то от чего я хочу получить все содержимое, до /999/
 

asm

Пофигист
млин ну ты шаман... Заладил блоки броки...
элемент массива у тебя что? Один блок, куча блоков или значение между / ...
 

asm

Пофигист
дальше каждый длок это второй уровень массива так?
который ты получил как explode?
 

Фанат

oncle terrible
Команда форума
Есть массив. В котором много блоков
к сожелению, эта фраза - бред сивой кобылы.
в массиве не бывает блоков.
ты путаешь массив в текстовым файлом.
это в файле у тебя - блоки.
а в массиве никаких блоков нет.
Даже в одномерном - нет.
А ты из него сделал ДВУМЕРНЫЙ.
По какому принципу сделан двумерный - НЕ ЗНАЕТ НИКТО. Даже, по-моему - ты сам.

Скажи сейчас ХОТЯ БЫ:
мы сейчас работаем с одномерным массивом или с двумерным?
 

Фанат

oncle terrible
Команда форума
Andykalinin
ответы еще на два вопроса из тебя надо вытрясти
1. после /999/ - что идет? новый блок?
То есть, выходит, что блоки разделены вот этими самыми девятками?

блоки В ФАЙЛЕ утебя идут каждый на своей строке или по многу строк занимают?

-~{}~ 29.11.04 21:21:

asm
а ты исчезни, не мешайся под ногами
 

Andykalinin

Новичок
Автор оригинала: Фанат
Andykalinin
ответы еще на два вопроса из тебя надо вытрясти
1. после /999/ - что идет? новый блок?
То есть, выходит, что блоки разделены вот этими самыми девятками?

блоки В ФАЙЛЕ утебя идут каждый на своей строке или по многу строк занимают?

-~{}~ 29.11.04 21:21:

asm
а ты исчезни, не мешайся под ногами
После каждого блока идут девятки.
Все блоки имеют одну структуру, но разное кол-во строк.
 

Gas

может по одной?
Andykalinin
Правильная терминология облегчает понимание.
Почитай сначала это.
 

Фанат

oncle terrible
Команда форума
Andykalinin
тебе надо получить блоки?
И какая проблема , если ты умеешь разбивать по "/", разбить по "/999/" и получить свой массив блоков?

-~{}~ 29.11.04 21:26:

только файл свой тебе надо читать не в массив, а в строку.
file_get_contents
 

Andykalinin

Новичок
Фанат, спасибо за терпение, я попробую :)

-~{}~ 29.11.04 21:31:

Автор оригинала: Gas
Andykalinin
Правильная терминология облегчает понимание.
Почитай сначала это.
Я вроде бы нигде не просил критиковать меня...
 

Фанат

oncle terrible
Команда форума
А где написано, что здесь отвечают только то, о чем просили?
 

Gas

может по одной?
Andykalinin
Если советы это критика, то ради Бога.
Только благодаря неординарным способностям Фаната в телепатии ;) теперь ясно что тебе действительно нужно.
 

Andykalinin

Новичок
Извиняюсь если не так выразился, просто сам уже злой от того что не получается...

-~{}~ 29.11.04 22:29:

PHP:
$fp=fopen($file,"rt") or die("Îøèáêà");  
$end="/endofteam/";  
while (!feof($fp)) 
{ 
$f=fread($fp,filesize($file));  
$f=str_replace("/999/",$end,$f);  
$start=strpos($f,$club);  
$where=strpos($f,$end);  
$n=substr($f,$start,$where);  
$i=1;  
$fn=fopen("alltemp.inc","w+") or die("Îøèáêà");  fwrite($fn,$n);  
fclose($fn);  
}
Сделал так и почти получилось, считывает именно с того места с которого нужно, но вот почему-то не останавливается там где надо (не на $end), а записывает несколько лишних строк в темп...
подскажите плиз, как заставить остановится там где надо.
 

Фанат

oncle terrible
Команда форума
документацию на субстр читай, чудо
кстати и на strpos - тоже.

код этот даже комментировать не буду
 

Фанат

oncle terrible
Команда форума
настолько непонимаемо, что делается своими руками.
непонятно, зачем while (!feof($fp))
непонятны телодвижения с заменой 999 на непонятное слово.
непонятно упорное нежелание читать документацию на используемые функции и брать примеры оттуда
 

Andykalinin

Новичок
999 меняю потомучто есть вероятность того что такая комбинация где-то встретится в файле, после того как я уберу / символы...
А вот это как раз из учебника по ПХП while (!feof($fp)) На сколько я понимаю, таким образом я считываю построчно файл. Или меня обманули?
 

Фанат

oncle terrible
Команда форума
ну да, конечно. обманули. какие могут быть сомнения. писатели учебников - сплошь аферисты и жулики.

А читатели - просто гиганты мысли, да.
 
Сверху