Как в PHP из строк выбрать только идущие в определенном порядке?
Как выбрать только строки (читаем из файла) в которых идет сначала:
- Сначала '<Upload' или '<SUpload'
- потом 'name'
- потом 'ftpServer'
Т.е строки в которых нет такого порядка следования не нужны.
string(10) "<Upload"
string(19) "name = events"
string(36) "ftpServer = s1.ru"
string(10) "<SUpload"
string(16) "name = s33"
string(36) "ftpServer = 192.168.0.68"
string(16) "name = name1"
string(25) "name = name22_test"
string(10) "<Upload"
string(19) "name = name44"
string(36) "ftpServer = 192.168.0.69"
Должно получиться:
string(10) "<Upload"
string(19) "name = events"
string(36) "ftpServer = s1.ru"
string(10) "<SUpload"
string(16) "name = s33"
string(36) "ftpServer = 192.168.0.68"
string(10) "<Upload"
string(19) "name = name44"
string(36) "ftpServer = 192.168.0.69"
Ответы (1 шт):
Автор решения: Movs
→ Ссылка
Загнать в массив, пробежаться по массиву и отобрать нужное. Как-то так:
for( $i=0; $i<count($lines)-2; $i++){
if( preg_match('/<S?Upload/', $lines[$i] && preg_match('/name/', $lines[$i+1] && preg_match('/ftpServer/', $lines[$i+2] ){
$result[]=$lines[$i];
$result[]=$lines[$i+1];
$result[]=$lines[$i+2];
}
}