Выкладываю неплохое решение:
$url = 'https://www.xcom-shop.ru/hp_proone_440_g4_645770.html';
$html = file_get_contents($url, false, stream_context_create([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
],
]));
preg_match('~<div id="card_prop">.*<div class="prop\-column right"></div>~is', $html, $preg);
$exp = explode('<div class="short_desc prop-line delimiter">', $preg[0]);
unset($exp[0]);
$result = [];
foreach ($exp as $item)
{
preg_match('~<h3>([^<]+)</h3>~i', $item, $title);
preg_match_all('~<div class="call">([^<]+)</div>\s*?<div class="prop-value">(.+)</div>~isU', $item, $rows, PREG_SET_ORDER);
foreach ($rows as $row)
{
$result[ trim($title[1]) ][ trim($row[1]) ] = trim($row[2]);
}
}
echo '<pre>';
print_r($result);