如何使用 PHP 将文本附加到特定标签内的外部 html 文件?

Posted

技术标签:

【中文标题】如何使用 PHP 将文本附加到特定标签内的外部 html 文件?【英文标题】:How to append text to external html file inside of a specific tag using PHP? 【发布时间】:2012-06-30 02:11:32 【问题描述】:

假设我有一个外部 html 页面,我想在我的 php 管理页面中的特定标签内附加文本,例如在这个 span 标签内放置杂项文本。

例如:

<html>
<body>
<span class="text"></span>
</body>
</html>

我将如何使用 PHP 做到这一点?我正在尝试为这个网站制作一个管理页面,我需要在某些标签内附加文本。我什至不知道从哪里开始,请指出正确的方向。

【问题讨论】:

喜欢 file_get_content,还是包含? @itsme 我认为他的意思是,他想打开一个文件,在特定标签中写入/附加到它。 How to append source html to a DOMElement in PHP?的可能重复 【参考方案1】:

您可以使用 PHP 的 DOMDocument 来做到这一点,如下所示:

// Load the HTML document
$doc = new DOMDocument;
$doc->loadHtmlFile( 'htmlpage.html');

// Get the parent node where you want the insertion to occur
$parent = $doc->getElementsByTagName('body')->item( 0);

// Create the child element 
$child = $doc->createElement( 'span');
$child->setAttribute( 'class', 'text');

// Append (insert) the child to the parent node
$parent->appendChild( $child);

// Save the resulting HTML
echo $doc->saveHTML();

所以,给定这个 HTML:

<html>
<body>
</body>
</html>

resulting HTML would be:

<html>
<body>
<span class="text"></span>
</body>
</html>

(如果 DOMDocument 不存在,则忽略 DOCTYPE 声明)

【讨论】:

太棒了,非常感谢... 嗯,我唯一的问题是从 getElementsByTagName 切换到 getElementById... 它给了我 php 错误 非常感谢。 elementbyid 仍然有问题,但我可以为此应用程序使用标记名。 @JohnJohnson 根据 PHP 文档中的评论者所说,如果您的 HTML 页面没有指定文档类型,那么 getElementById 将始终返回 null。 (php.net/manual/en/domdocument.getelementbyid.php)【参考方案2】:

根据您的具体需要,您可以通过另一种方式执行此操作 - 将目标 .HTML 文件改为 .PHP 文件,并使用它自己填充适当的内容,比方说,函数名为get_span_contents(),如下所示:

<html>
<body>
  <span class="text">
    <?PHP get_span_contents(); ?>
  </span>
</body>
</html>

一个缺点是这将为文档的每个请求生成(可能取决于缓存方案),而如果您将其分为两个步骤(1. 写出 HTML,2. 单独提供 HTML),您只会做一代人一次。根据内容的动态程度或计算成本的微小程度,这可能不是问题。

【讨论】:

谢谢,如果我无法弄清楚 DOMDocument,这是一个不错的选择

以上是关于如何使用 PHP 将文本附加到特定标签内的外部 html 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 放置文本,例如框架内的字幕

如何在 PHP 中将特定 PDF 附加到电子邮件中?

无法将文本附加到 C++ 中的特定位置

BeautifulSoup 排除特定标签内的内容

如何将引导模式内的下拉列表的选定值获取到php中的文本框中

php xpath如何从父元素内的多个元素中获取值