Занимаюсь парсингом сайта написанного на ASP.NET (
www.iaai.com/Vehicles/VehicleAdvSearch.aspx?savepreference=true#anchorSearchResults) и там на каждый клик почти срабатывает JS функция __doPostBack() которая ajax-ом отправляет форму, и в ответ получает что-то вроде такого
http://pastebin.com/c7eb9XhH проанализировав немного получилось составить задачу которую нужно выполить:
И так предполодим что наш ответ был такой:
10|updatePanel|h2.header|Привет мир|20|updatePanel|p.search|Элементов не найдено|0|deleteBox|#results||
Эта строка написана мной, но в ней используется тот же принцип что и в той что мне возвращается от ASP.NET.
И так прицип действия тут такой:
Эта строка состоит из трех блоков имеющих одинаковый принцип посторения который я хочу в итоге сохранить в ассоциативный массив. И так позьмем первый блок и разберем его:
10|updatePanel|h2.header|Привет мир|
Этот блок состоит из четырех подблоков разделенных символом
|
1)
10 это количество символов в четвертом подблоке, для того чтоб не экранировтаь в нем наверно
2)
updatePanel предположим что это действие, которое мы должны выполнить
3)
h2.header это селектор над которым выполняется действие
4)
Привет мир это строка из 10 символов(которые мы сразу указали)
И так задача представить это все в виде массива вот так:
$array = array(
'updatePanel' => array(
'h2.header' => 'Привет мир',
'p.search' => 'Элементов не найдено'
),
'deleteBox' => array(
'#results' => ''
)
);
Но этот массив должен создаваться не в ручную, а самим php, что-то не могу понять с чего даже начать писать функцию.