每次刷新时随机的图标

时间:2012-05-19 13:27:52

标签: php favicon

我正在尝试创建一个在每次刷新时更改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;。任何人都可以修复我的脚本吗?

4 个答案:

答案 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 . '">';