如何使用 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 文件?的主要内容,如果未能解决你的问题,请参考以下文章