Генерация случайного числа и добавление к строке аргумента HTML

#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 также является не функцией, а структурой, поэтому 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-символы для двойных кавычек должны быть удалены.