如何使用PHP在标题中包含CSS?
假设我有如下标记:如何使用PHP在标题中包含CSS?,php,html,header,Php,Html,Header,假设我有如下标记: <!DOCTYPE html> <html> <head> </head> <body> <?php PutIntoHeader("<script src="im_on_top"></script>") ?> </body> </html> PutIntoHeader函数将把给定的脚本放入呈现的
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<?php
PutIntoHeader("<script src="im_on_top"></script>")
?>
</body>
</html>
PutIntoHeader函数将把给定的脚本放入呈现的html的head部分。我可能错过了一些非常明显的东西,但我似乎无法理解。你知道该函数如何做到这一点吗
产出将是:
<!DOCTYPE html>
<html>
<head>
<script src="im_on_top"></script>
</head>
<body>
</body>
</html>
谢谢你的建议
编辑:->
嗨,我感觉自己像是一个傻瓜,得到了这样的答案:)我的系统非常复杂,在我写标题的时候,我不知道哪个脚本会被请求到那个特定的页面,因为它是动态的。我可以在呈现之前将所有html放在变量中,然后将其作为xml遍历,并在数组中存储脚本时手动将其放在变量中,但我不想走这条路。您的PHP代码无法知道内容应该输出到哪里。一旦呈现页面,PHP就会失去对数据的控制 您似乎试图在
中编写内容,然后将其注入
部分为什么不在
部分输出内容?
<!DOCTYPE html>
<html>
<head>
<?php echo "<script src=\"im_on_top\"></script>"; ?>
</head>
<body>
<!-- Some HTML markup here -->
</body>
</html>
您可以尝试以下方法:
<head>
<?php echo '<link rel="stylesheet" type="text/css" href="theme.css">'; ?>
</head>
如果你不想直接把它放在头上,因为当时你不知道需要什么,你需要事先执行逻辑 您需要将逻辑与视图分离,并将视图作为呈现信息的简单方式 首先计算关于页面的所有内容,并为自己留下变量,您可以使用这些变量提取相关信息,然后为预先计算的变量输出相关html 这可以在一个页面内完成,或者我建议使用某种库来帮助完成。像Kohana这样的东西非常擅长于此,您可以使用Kohana来分离控制器、模型等,然后使用Mustach之类的东西作为模板库。使用Mustach,您可以创建只包含最基本逻辑的视图(应该是这样的)。在几乎所有情况下,您只需将脚本合并并缩小到单个文件中即可。这会减慢初始加载时间(第一次访问站点),但会加快进一步的访问/导航,因为文件将被缓存 当然,这取决于你的具体情况。例如,见 还有一点是,用户代理不能无限并发地连接到同一个域来加载资源 例如,请参见以下两个(有些过时)基准:
和body标记之前。这种方法的优点是,您知道该加载什么脚本。页面加载速度会更快(因为在呈现实际页面之前,头部中的资源将首先被完整下载)。这种方法的缺点是,在脚本启动之前有一个很小的延迟,因为它将是DOM中最后加载的内容
另一种选择是推迟在PHP端呈现HTML,并将其更像模板引擎一样使用。一个简单的例子是,首先获取所有要显示的小部件,然后在PHP中启动HTML呈现
一些引导文件
<?php
// load widgets from db or wherever
$widgets = [
[
'template' => '/templates/widget1.phtml',
'script' => '/js/widget1.js',
],
[
'template' => '/templates/widget2.phtml',
'script' => '/js/widget2.js',
],
];
require __DIR__ . '/templates/page.html';
另外,在上面的示例中,我使用了
script
标记,但它也可以扩展为css
文件。。。把它写在标题里。。。?!这是一个非常简单的示例,我无法在真实场景中用header编写,因为当时我不知道最终将加载哪些脚本。请使用echo
。另外,要小心重复引用。如果不转义这些引号,您的示例将无法运行。您正在构建cms吗?如果是这样,您可以创建一个函数,该函数可以从当前文件中获取头并附加脚本。您需要对小部件进行某种依赖性检查。存储每个小部件所需的依赖项列表。当你开始加载页面时,在你开始输出页眉之前,先弄清楚你将包含哪些小部件。嗨,我感觉自己像是一个傻瓜,得到了这样的答案:)我的系统非常复杂,在我写页眉的时候,我不知道哪个脚本会被请求用于特定的页面,因为它是动态的。我可以在呈现之前将所有html放在变量中,然后将其作为xml遍历,并在数组中存储脚本时手动将其放在变量中,但我不想走这条路。@user3370402:如果你有这种印象,我很抱歉。我建议你修改你的问题,让它完全清楚你想要达到的目标。在当前的形式中,似乎您正在尝试在页面加载完成后更改网页的结构。是的,我在问题中添加了一条注释,无论如何,感谢您的回复。@user3370402:这与Common相同
<!DOCTYPE html>
<html>
<head>
<title>My page with widgets</title>
<?php foreach ($widgets) { ?>
<script src="<?php echo $widgets['script']; ?>"></script>
<?php } ?>
</head>
<body>
<?php foreach ($widgets) { ?>
<?php echo $widgets['template']; ?>
<?php } ?>
</body>
</html>