我正在尝试创建一个在每次刷新时更改favicon的脚本。
<?php
$dir = "img/icons/";
$files = array();
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
}
$icon = $files[rand(2,count($files)-1)];
echo "<LINK REL=\"shortcut icon\" HREF=\'img/icons/'.$icon."\">";
?>
此脚本从/ img / icons文件夹中获取每个favicon,并随机选择一个。问题是,当我将其粘贴到我的HTML文件中时,页面顶部会显示奇怪的字符“;?&gt;。任何人都可以修复我的脚本吗?
答案 0 :(得分:2)
<?php
$dir = "img/icons/";
$files = array();
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
}
$icon = $files[rand(2,count($files)-1)];
echo '<LINK REL="shortcut icon" HREF="img/icons/'.$icon.'">';
?>
Here 您可以查看在HTML中使用PHP。此外,您的服务器也应该正确配置。我总是建议.php
来处理PHP脚本。
希望这有帮助。
答案 1 :(得分:1)
您可以尝试:
echo "<LINK REL=\"shortcut icon\" HREF='img/icons/$icon'>";
未经测试。
你没有正确逃脱。
编辑:我会使用修改后的版本Evan Mulawski的解决方案。我认为未经修改的版本更容易阅读。
我的修改是:
<link rel="shortcut icon" href="img/icons/<?php echo "$icon" ?>"/>
我这样做是因为在一些系统上,nginx上的php有时会变得有点慢〜50ms我已经在网上的某处读过了。
答案 2 :(得分:1)
正如我的评论所说,你没有正确地逃避一些引用。单引号在双引号内不会被转义(反之亦然)。
将您的echo
行替换为:
?>
<link rel="shortcut icon" href="<?php echo "img/icons/$icon" ?>"/>
说明:
您可以在PHP代码中集成HTML。关闭PHP标记后,以纯HTML形式写link
标记,只需在需要回显图标位置时使用PHP。这比试图逃避引用容易得多。
答案 3 :(得分:1)
试试这个。对字符串使用单引号有助于避免使用转义字符的问题。
echo '<LINK REL="shortcut icon" HREF="img/icons/' . $icon . '">';