Попытка разбить HTML-тег, возвращаемый результатом сеанса cURL (curl_exec)
Поэтому я пытаюсь разделить тег HTML, который возвращается результатом сеанса cURL (curl_exec). пожалуйста, помогите
Что я пробовал:
1 - preg_split
/* cURL initializations....*/
$result = curl_exec($ch);
$load_time = preg_split('//[@class="embedmain"]/.embedFooter/b', $result);
echo $load_time;
Выход: False
с предупреждением preg_split(): Unknown modifier '['
2 - Разбор HTML с использованием DOMDocument
/* cURL initializations....*/
$result = curl_exec($ch);
$doc = new DOMDocument;
$doc->loadHTML($result);
$xpath = new DOMXpath($doc);
$node = $xpath->query('//[@class="embedmain"]/.embedFooter/b')->item(0);
$load_time = (isset($node->textContent) && strlen($node->textContent) > 1 ? $node->textContent : '0.0ms');
echo $load_time;
Выход:
Warning: DOMXPath::query(): Invalid expression
Warning: DOMXPath::query(): Invalid expression
Fatal error: Call to a member function item() on boolean
Похоже, запрос xpath недействителен.
1 ответ
Решение
Вы не хотите использовать регулярные выражения для чего-то подобного или строковые функции. Используйте парсер и xpath, как вы начали делать.
$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$bold = $xpath->query('//div[@class="embedmain"]/div[@class="embedFooter"]/b')[0]->nodeValue;
echo $bold;