gpt4 book ai didi

php - 动态 css 样式表的奇怪行为

转载 作者:行者123 更新时间:2023-11-28 11:48:29 25 4
gpt4 key购买 nike

很多时候,我都使用了自己“学会”的一种css技巧。当我依赖于可以将其放在 html 文档中的动态样式表时,我使用的 css 文件实际上不是 css,它们是 php 文件。示例:style.css.php。总是有效。但是现在我遇到了一个我以前从未见过的奇怪行为的麻烦。我的 fundo.css.php 文件有这个简单的格式:

body {
background: url(../arquivos/imagens/<?php

// some php functions..
echo "coyote.jpg";

?>) top left no-repeat;
}

它向浏览器发送这个响应:

body {
background: url(../arquivos/imagens/coyote.jpg) top left no-repeat;
}

漂亮,但如果浏览器显示背景!在 Firebug 控制台(如 Chrome 中的 Dev Tools)上,Network 选项卡中浏览器尝试查找的 url 是:

http://localhost:8080/ultimocaso/arquivos/imagens/%EF%BB%BF%EF%BB%BF%EF%BB%BF%EF%BB%BF%EF%BB%BFcoyote.jpg

如果我只是使用带有该内容的 css 普通文件,它就像一个魅力。

谁知道告诉我为什么会发生这种情况和/或如何解决它?

编辑

我使用 Adob​​e Dreamweaver 编辑我的文件,在我的首选项 -> 新文档中,包含 BOM 签名的选项已关闭!!

最佳答案

问题是您在 PHP 中包含了具有 UTF-8 BOM 的文件。

虽然你看不到这个BOM(Byte Order Mark),但是你可以想象现实中包含的文件是这样的:

%EF%BB%BF<?php
echo 'this is myinclude.php';
?>

当您使用 include 函数时,您实际上是在将这些字符导入文件中包含代码的位置。

<?php
// some code
include('myinclude.php');
// some code
?>

实际上是这样解释的:

<?php
// some code
?>
%EF%BB%BF
<?php
echo 'this is myinclude.php';
?>
<?php
// some code
?>

避免代码中间出现 BOM 的一种方法是将所有包含放在它们影响较小的地方,例如在文件的开头。另一种方法(我个人的选择)是以没有 BOM 的格式保存导入的文件,例如常规 UTF-8。

关于php - 动态 css 样式表的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com