Ваша причина его неудачи в следующем: @$dom2->loadHTML($page_data[]);
[]
может использоваться только для назначения, но не для чтения. У вас должен быть ключ, на который вы можете ссылаться. Я бы, наверное, сделал это так:
$page_data=array();//$title_links is array having urls
foreach ($title_links as $key => $b_url)
{
$page_data[$key]= mycurl($b_url);//my curl function, it is okay
$dom2 = new DOMDocument();
$dom2->loadHTML($page_data[$key]); // error suppression is evil!
$xpath_cat = new DOMXPath($dom2);
}
Что мне до сих пор неясно, так это то, как именно здесь происходит какое-либо вложение, вы ничего не вкладываете, вы просто перебираете массив.