在PHP中,你可以使用`file_get_contents`函数来获取网页的HTML内容,然后使用`DOMDocument`类来解析HTML,并提取标题(`
<?php
function getWebPageTitleAndContent($url) {
// 检查URL是否为空
if (empty($url)) {
return ['title' => '', 'content' => ''];
}
// 获取网页内容
$html = file_get_contents($url);
if ($html === false) {
// 如果无法获取内容,返回空值
return ['title' => '', 'content' => ''];
}
// 加载HTML内容到DOMDocument
$dom = new DOMDocument();
@$dom->loadHTML($html); // 使用@来抑制可能的警告(如HTML格式不正确)
// 提取标题
$title = $dom->getElementsByTagName('title')->item(0)->nodeValue;
// 提取内容并去除HTML标签
$xpath = new DOMXPath($dom);
$bodyNodes = $xpath->query('//body/*');
$content = '';
foreach ($bodyNodes as $node) {
// 这里我们简单地假设内容节点不包含需要特别处理的子元素(如script, style等)
// 对于更复杂的情况,你可能需要更复杂的逻辑来过滤这些节点
$content .= strip_tags($dom->saveHTML($node));
}
// 去除可能的多余空白字符
$content = trim(preg_replace('/\s+/', ' ', $content));
return ['title' => $title, 'content' => $content];
}
// 使用示例
$url = 'http://example.com'; // 请替换为实际的URL
$result = getWebPageTitleAndContent($url);
print_r($result);
?>
**注意**:
1. 这个函数假设网页的内容是有效的HTML,并且`
2. 使用`@$dom->loadHTML($html);`来抑制可能的警告,但在生产环境中,最好处理这些潜在的错误或警告。
3. `strip_tags`函数用于去除HTML标签,但请注意,它不会处理嵌套的JavaScript或CSS等可能包含在`