0

如何包含一个文件,但在包含和渲染后“忘记”它的所有内容;包含它,可以这么说。

回到过去,我想我只会使用框架,但现在时代变了。我想 iframe 仍然是公平的游戏....但是还有其他方法吗?

ps我无法编辑包含的文件:)。

索引.php

<?php
echo '<p>This is some left-aligned text</p>';
include 'include.html';
echo '<p>This is some more left-aligned text</p>';
?>

包含.html

<html>
<head>
<style>
body{
    text-align:center;
}
</style>
</head>
<body>
<p>This is some centered text</p>
</body>
</html>

输出

                       This is some left-aligned text

                       This is some centered text

                       This is some more left-aligned text

期望的输出

This is some left-aligned text

                       This is some centered text

This is some more left-aligned text

'终极'目标 只是为了提供更多信息,我有一个 epub 文件。我加载 container.xml 来确定根文件,它是一个 .opf 文件,它告诉我 spint,其中包含很多 .html 文件......

然后我将所有这些 html 文件包含到页面中,以便可以在一个连续流中读取 epub。

epub文件不能编辑?除非我可以在不永久修改 epub 文件的情况下做到这一点。

4

3 回答 3

2

您可以尝试使用作用域 css,但它是一个实验性功能。所以在index.php的头部你应该包含这个 jquery 插件:https ://github.com/thingsinjars/jQuery-Scoped-CSS-plugin

然后,要实现您想要实现的目标,您必须将您的include.html文件更改为以下内容:

<html>
<head>
</head>
<body>
<style scoped>
body{
    text-align:center;
}
</style>
<p>This is some centered text</p>
</body>
</html>

我认为这应该可以解决问题,让您加载您想要包含的“每个”包含页面,而不会让它的样式影响文档的其余部分。但是在您使用的 JQuery 插件的限制中(它有一些问题) . Chrome 和 Firefox 目前原生实现了这个特定的功能,不需要这个插件。

于 2013-05-30T15:17:21.593 回答
1

只需在 index.php 上创建 css 类

<?php
echo '<p class=\'left\'>This is some left-aligned text</p>';
include 'include.html';
echo '<p class=\'left\'>This is some more left-aligned text</p>';
?>

在 style 标签中添加 index.php:

<style type="text/css">
.left{text-align:left;}
</style>

您的“包含”html 文件无需更改。

它现在应该可以与该包含一起正常工作。我会说 iframe 非常好,这取决于你在做什么。您当前的演示页面没有多大意义,但我认为这只是为了测试。所以上面的内容应该适合你。

于 2013-05-30T15:16:30.860 回答
1

将文件作为字符串加载并仅加载 html 文件的正文,因为您不能在同一个文件中有 2 个 HTML 标记。

<?php
echo '<p class=\'left\'>This is some left-aligned text</p>';
$html = file_get_contents('include.html');
preg_match('/\<body\>(.*?)\<\/body\>/is', $html, $matches);
echo $matches[1];
echo '<p class=\'left\'>This is some more left-aligned text</p>';
?>
于 2013-05-30T15:20:57.453 回答