我有这个脚本:
<?PHP
$Dokument = $_GET["Ime"];
Switch($Dokument)
{
Default: Echo "Pogrešno ime dokumenta! Proveri da li postoji."; Exit;
Case "Style": $Dokument = "Folder/Styles/MainStyle.CSS"; Break;
}
If(File_Exists($Dokument))
{
Header("Last-Modified: {gmdate('D, d M Y H:i:s', filemtime('$Dokument'))} GMT");
Header("Content-Type: {MIME_Content_Type('$Dokument')}");
Header("Content-Length: {FileSize('$Dokument')}");
ReadFile("$Dokument");
}
Else
{
Echo "Pogrešno ime dokumenta! Proveri da li postoji.";
}
Exit;
?>
它适用于 Firefox,但 Chrome 拒绝通过
<link href="/Izvor?Ime=Style" rel="stylesheet" type="text/css" />
显示样式表,而是显示空白页面。它只是显示:
link
{
display: none
}
您需要更多详细信息吗?有人可以给我一个适用于所有浏览器和 php 版本的改进版本吗?我是一个 php 初学者。
我尝试更改样式表和网页的编码,但也失败了。 Chrome 很固执。我希望通过
/Izvor.php?Ime=main_style
加载样式表。 这个脚本,实际上,是为了加载页面上的所有文件。而不是像/Folder/Styles/MainStyle.css
那样直接链接它们,我希望它是/Source.php?id=main_style
加载页面上的主要样式。正如我所写,它在 Firefox 上运行完美,但在 Chrome 上却不行。这同样适用于所有其他浏览器除了 Firefox。 ChromeCAN访问ALL文件通过php脚本,它只是REFUSES在页面上显示/显示它们。
有什么帮助吗?
你的
header()
里面的函数不会被调用。像这样连接它们:
header("Last-Modified: " . gmdate('D, d M Y H:i:s', filemtime($Dokument)) . " GMT");
header("Content-Type: " . MIME_Content_Type($Dokument));
header("Content-Length: " . FileSize($Dokument));
看看这是否解决了 Chrome 的问题
这段代码写的不好,我把调用的header()改成了简单的
echo
语句来演示
$Dokument = 'something';
echo "Last-Modified: {gmdate('D, d M Y H:i:s', filemtime('$Dokument'))} GMT";
echo PHP_EOL;
echo "Content-Type: {MIME_Content_Type('$Dokument')}";
echo PHP_EOL;
echo "Content-Length: {FileSize('$Dokument')}";
echo PHP_EOL;
echo PHP_EOL;
# FIX
echo "Last-Modified: " . gmdate('D, d M Y H:i:s', filemtime($Dokument)) . " GMT";
echo PHP_EOL;
echo "Content-Type: " . MIME_Content_Type($Dokument);
echo PHP_EOL;
echo "Content-Length: " . FileSize($Dokument);
结果
Last-Modified: {gmdate('D, d M Y H:i:s', filemtime('somtthing'))} GMT
Content-Type: {MIME_Content_Type('somtthing')}
Content-Length: {FileSize('somtthing')}
Last-Modified: Fri, 03 Mar 2023 17:35:50 GMT
Content-Type: text/plain
Content-Length: 611
事实上,
{}
构造实际上是多余的,可以删除