使用 PHP 显示 HTML 内容(并加载样式)
Show HTML content wit PHP (and load style)
我有一些 HTML 页面(在 "web" 文件夹中)使用了一些样式和脚本,我需要使用 PHP 脚本显示这些 HTML 页面.这是我正在使用的代码的简化版本:
<?php
readfile("web/index.html");
它可以工作,但它不会加载任何资源(css、js、图像),因为 URL 不是绝对的:
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
它没有找到资源,因为它正在寻找与 PHP 脚本位于同一文件夹中的 css 文件夹。
有什么解决方法吗?
您需要将 <base href='...'>
添加到 html 中,像这样(未测试):
$page_content=preg_replace("%</head%i","<base href='web/'></head",$page_content);
在读取文件之后插入这个。参见 MDN web docs for more information about that tag。
在某些浏览器(至少是 Firefox 和 edge)中,如果您在输出 $page_content 之前打印 base 标签,它也可以工作。它很脏,但也许它已经足够好了。
简单你可以使用这样的东西
index.php
<html>
<head>
<php include("menu.php"); ?>
</head>
<body>
</body>
</html>
menu.php
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
对于基本路径,使用一些变量,例如 $base = "http://localhost"
,然后使用您的元素,例如 <img scr="<?php $base ?>/images/myimage.jpg" />
希望这能回答您的问题
我有一些 HTML 页面(在 "web" 文件夹中)使用了一些样式和脚本,我需要使用 PHP 脚本显示这些 HTML 页面.这是我正在使用的代码的简化版本:
<?php
readfile("web/index.html");
它可以工作,但它不会加载任何资源(css、js、图像),因为 URL 不是绝对的:
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
它没有找到资源,因为它正在寻找与 PHP 脚本位于同一文件夹中的 css 文件夹。
有什么解决方法吗?
您需要将 <base href='...'>
添加到 html 中,像这样(未测试):
$page_content=preg_replace("%</head%i","<base href='web/'></head",$page_content);
在读取文件之后插入这个。参见 MDN web docs for more information about that tag。
在某些浏览器(至少是 Firefox 和 edge)中,如果您在输出 $page_content 之前打印 base 标签,它也可以工作。它很脏,但也许它已经足够好了。
简单你可以使用这样的东西
index.php
<html>
<head>
<php include("menu.php"); ?>
</head>
<body>
</body>
</html>
menu.php
<link href="css/bootstrap.css" rel='stylesheet' type='text/css' />
<link href="css/style.css" rel='stylesheet' type='text/css' />
对于基本路径,使用一些变量,例如 $base = "http://localhost"
,然后使用您的元素,例如 <img scr="<?php $base ?>/images/myimage.jpg" />
希望这能回答您的问题