#php #html
#php #HTML
Вопрос:
Я пытаюсь изменить изображение заголовка случайным образом на основе выбранного случайного числа. Это код, который у меня есть прямо сейчас, и для него требуется весь тег целиком.
<img src="http://www.example.com/site_gfx/headers/header_<?php echo(rand(1,7)); ?>.png" width="980" height="230" alt="Example Site" />
Есть ли какая-либо причина, по которой оно умирало бы так, как есть? Где <?php echo
часть — это PHP-код, который я использую для генерации случайного числа, и я хотел бы включить его в строку для img src
Комментарии:
1. является ли расширение фотографии .png или .PNG? Может иметь значение, если учитывается регистр.
2. Это страница PHP? Заканчивается ли оно на .php?
3. это расширения в нижнем регистре, я проверил. И это страница .php, на которой он находится.
4. PHP не генерирует число, как таковое, изображение, которое имело бы номер, является 404-ing и отображается alt-text.
Ответ №1:
Как это умирает? Я бы попробовал print
или echo
без круглых скобок, поскольку я не видел, чтобы echo()
они использовались раньше:
print():
<?php print(rand(1,7)); ?>
эхо:
<?php echo rand(1,7); ?>
Комментарии:
1. для print и echo нет разницы просто выдавать простой текст чего-либо. По крайней мере, не в моем опыте.
2.
print X;
без круглых скобок «лучше».
Ответ №2:
Понял это. Проблема в том, что я не понимал, что <?php
область выполняется в echo
команде (глупый маленький недосмотр с моей стороны). Но изменение echo
инструкции, с которой я работал, исправило это.
Всем спасибо за указания.
Ответ №3:
По какой-либо причине вы хотите сделать это с PHP, вероятно, было бы проще с javascript. попробуйте убрать rand (1,7) из скобки, чтобы иметь:
echo rand(1,7)
Комментарии:
1. Как же так? PHP является наиболее кроссбраузерным, поскольку он не зависит от браузера.
2. 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" />'
?>
Может возникнуть проблема с использованием <?php
тега внутри другого тега.
Комментарии:
1. Не нужно (на самом деле не должно) экранировать двойные кавычки внутри одинарных кавычек. Это будет отображаться в точности как «.
2. @EvilPheonix У него есть открывающий PHP-тег
<?php
в его ответе, но он не экранировал его, поэтому S.O. удаляет его (и все, что после него) из содержимого своего ответа.3. @Tieson T. Хороший момент, моя ошибка, escape-символы для двойных кавычек должны быть удалены.