开发者社区 问答 正文

求大神帮我使用PHP写个简单函数:报错

<p class="quote"><span class="q1"></span>shalal 发表于 2013-07-21 15:03:19 


22222222222222222222222222222222222
<span class="q2"></span></p>
55464
上面是一段HTML代码,如何使用PHP 分别提取其中的“
shalal

以及

22222222222222222222222222222222222

55464
,请教大家,最好帮我写成一个函数!~

展开
收起
kun坤 2020-06-14 08:53:09 376 分享 版权
阿里云 AI 助理回答

您好!要使用PHP从HTML代码中提取特定内容,可以使用DOM解析方法。下面是一个简单的示例函数,展示了如何分别提取您提供的HTML片段中的文本内容和数字:

<?php

function extractContent($html) {
    $dom = new DOMDocument();
    // 载入HTML并启用libxml错误处理以便于加载不规范的HTML
    libxml_use_internal_errors(true);
    $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
    
    // 获取所有的文本节点
    $xpath = new DOMXPath($dom);
    $textNodes = $xpath->query('//text()');
    
    // 提取并拼接所有文本内容
    $textContent = '';
    foreach ($textNodes as $node) {
        $textContent .= trim($node->nodeValue);
    }
    
    // 分割提取的内容以获取所需的部分
    $parts = explode("\n", $textContent);
    $part1 = trim($parts[0]); // "shalal"
    $part2 = trim($parts[1]); // "22222222222222222222222222222222222"
    $part3 = trim($parts[2]); // "55464"
    
    return array($part1, $part2, $part3);
}

$html = 'shalal<br>22222222222222222222222222222222222<br>55464';

list($extracted1, $extracted2, $extracted3) = extractContent($html);

echo "Part 1: " . $extracted1 . "\n";
echo "Part 2: " . $extracted2 . "\n";
echo "Part 3: " . $extracted3 . "\n";

?>

这个函数首先使用DOMDocumentDOMXPath来解析HTML字符串,然后通过XPath查询所有的文本节点,并将它们合并成一个字符串。最后,它通过分割合并后的字符串来提取出您需要的三个部分。

请注意,这种方法假设您的HTML结构较为简单,且所需的文本是连续出现的。对于更复杂的HTML结构,可能需要调整XPath查询或处理逻辑。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答分类:
PHP
问答地址: