【问题标题】:Generating a random number and adding to an HTML argument's string生成随机数并添加到 HTML 参数的字符串
【发布时间】:2026-02-21 04:05:01
【问题描述】:

我正在尝试根据选择的随机数随机更改标题图像。这是我现在的代码,它需要整个标签。

<img src="http://www.example.com/site_gfx/headers/header_<?php echo(rand(1,7)); ?>.png" width="980" height="230" alt="Example Site" />

有什么理由它会像现在这样死去吗? &lt;?php echo 部分是我用来生成随机数的 PHP 代码,我想将它包含到 img src 的字符串中

【问题讨论】:

  • 照片的扩展名是 .png 还是 .PNG?如果区分大小写,可能会有所不同。
  • 这是一个 PHP 页面吗?它是否以 .php 结尾?
  • 它们是小写扩展,我检查了。这是一个 .php 页面。
  • PHP 没有生成数字,因此具有数字的图像是 404-ing 并且 alt-text 正在显示。

标签: php html


【解决方案1】:

它是怎么死的?我会尝试不带括号的printecho,因为我之前没有见过echo()

打印()

<?php print(rand(1,7)); ?>

回声

<?php echo rand(1,7); ?>

【讨论】:

  • 打印和回显没有区别,只是吐出一些简单的文本。至少在我的经验中没有。
  • print 也不是一个函数,而是一个结构体,所以print X; 不带括号“更好”。
【解决方案2】:

想通了。问题是我没有意识到&lt;?php 区域在echo 命令中运行(我的疏忽很小)。但是修改我正在使用的echo 语句修复了它。

谢谢大家的指点。

【讨论】:

    【解决方案3】:

    您想使用 PHP 执行此操作的任何原因,使用 javascript 可能会更容易。尝试从括号中删除 rand(1,7) 以便:

    回声 rand(1,7)

    【讨论】:

    • 怎么样? PHP 是最跨浏览器的,因为它独立于浏览器。
    • JavaScript 不是一个选项,我试图避免使用非 PHP 脚本。
    【解决方案4】:

    这将是一个更好的方法来做到这一点

    <?php
     $number = rand(1,7);
     echo '<img src="http://www.example.com/site_gfx/headers/header_' . $number . 'png" width="980" height="230" alt="Example Site" />'
    ?>
    

    在另一个标签内使用&lt;?php 标签可能会出现问题。

    【讨论】:

    • 不需要(实际上不应该)在单引号内转义双引号。这将完全呈现 \"。
    • @EvilPheonix 他的回答中有一个 PHP 开头标签 &lt;?php,但没有逃脱它,所以 S.O.从他的答案内容中删除它(以及它之后的所有内容)。
    • @Tieson T. 好点,我的错误,应该删除双引号的转义字符。