0

所以我试图让它做到这一点,它会选择 1.jpg 2.jpg 或 3.jpg。我的猜测是我做错了,但我没有收到 php 错误,我的 IDE 也没有告诉我我的 CSS 错误,所以我没有什么可做的。

代码:

HTML/CSS:

<html>
    <head>
        <link rel="stylesheet" href="css/styles.css" type="text/css" media="all">
        <script type="text/javascript" src="js/jquery-1.4.2.min.js" ></script>
        <?php
            include 'php/backgorundlogic.php';
        ?>
        <style>
            body {
                background:url($bgset);
                background-size:cover;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <input class="searchbar" type="text" />
        </div>
    </body>
</html>

PHP:

<?php
    $rbg = mt_rand(1, 3);
    $ext = '.jpg';

    $bgset = 'img/' + $rbg + $ext;
?>

演示:在这里

4

3 回答 3

4

利用 。而不是 +

<?php
    $rbg = mt_rand(1, 3);
    $ext = '.jpg';

    $bgset = 'img/' . $rbg . $ext;
?>

并更改此行

    <style>
        body {
            background:url(<?php echo $bgset; ?>);
            background-size:cover;
        }
    </style>
于 2013-02-08T21:05:51.563 回答
2

这一行:

background:url($bgset);

应该是这样的:

background:url(<?php echo $bgset ?>);

现在 PHP 引擎$bgset作为纯文本传递,因为它不在 PHP 脚本上下文中。您可能会考虑更加面向未来并且 HTML 转义该值:

background:url(<?php echo htmlspecialchars($bgset) ?>);
于 2013-02-08T21:03:55.547 回答
0
 background: url('<?php $a = array(‘anyfile.jpg’,'anyotherfile.gif’, ‘somefile.png’); echo $a[array_rand($a)];?>');

或者如果您的图像名称符合末尾带有整数的内容,例如。云3.png

 background: url('/images/lm/clouds<?php echo rand(0,10)?>.png') ;
于 2013-12-04T00:40:44.827 回答