Вызов функции PHP в HTML
Я новичок в Php. Я уверен, что это простая проблема. Я пытаюсь вызвать функцию getDateExpected в тегах моего html-файла. Я хотел бы, чтобы он вернул номер в виде текста, как показано ниже. Как это делается? Я вижу, что php-скрипт будет запущен с использованием какого-либо события, такого как нажатие кнопки, но в этом случае ничего не нажимается. Страница только загружается. Я знаю, что javascript использует {}, но возможно ли это для php или он предназначен только для обработки запросов из формы?
<?php
//include "landing.php";
function getDateExpected($desired){
$date = date ("d");
if($date << $desired){
echo $desired - $date;
}else{
echo $date-$desired;
}
}
?>
<!DOCTYPE html>
<html>
<title>Coming Soon</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://www.w3schools.com/lib/w3.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Raleway">
<style>
body,h1 {font-family: "Raleway", sans-serif}
body, html {height: 100%}
.bgimg {
background-image: url('obg.png');
min-height: 100%;
background-position: center;
background-size: cover;
}
</style>
<body>
<div class="bgimg w3-display-container w3-animate-opacity w3-text-white">
<div class="w3-display-topleft w3-padding-large w3-xlarge">
Potion
</div>
<div class="w3-display-middle">
<h1 class="w3-jumbo w3-animate-top">COMING SOON</h1>
<hr class="w3-border-grey" style="margin:auto;width:40%">
<p class="w3-large w3-center">getDateExpected(21) days left</p>
</div>
<div class="w3-display-bottomleft w3-padding-large">
<a href="http://www.twitter.com/" target="_blank">Adrian</a>
</div>
</div>
</body>
</html>
3 answers
" Спасибо тебе за помощь, Фред! Вы полностью ответили и рассмотрели все вопросы, но, к сожалению, я не смог выбрать ваш ответ, так как это был всего лишь комментарий): Если вы дадите правильный ответ, я выберу ваш как правильный для будущих посетителей, которые захотят лучшего понимания – AdrianDevera"
(Это поздний ответ, чтобы полностью описать сбой кода, и в соответствии с просьбой OP опубликовать его):
Есть несколько проблемы с кодом, который вы опубликовали.
Давайте рассмотрим их один за другим:
if($date << $desired)
Символы <<
(в PHP, видя в комментариях, что вы из фона C) являются побитовым оператором и не будут делать то, что вы от них ожидаете, как в "проверьте, если дата меньше x"
(<
меньше, чем):
if($date < $desired)
- Подробнее о (PHP) побитовом: http://www.php.net/manual/en/language.operators.bitwise.php
Тогда у нас есть это:
<p class="w3-large w3-center">getDateExpected(21) days left</p>
Функция getDateExpected()
для нее не завернута в теги php <?php
?>
, поэтому он никогда не вызывается/не выполняется, сейчас это просто строка; посмотрев на свой HTML-источник, вы бы увидели именно это, вместе с непроверенным PHP-кодом.
Поэтому измените его на следующее:
<p class="w3-large w3-center"><?php getDateExpected(21) ;?> days left</p>
В дополнение к этому и, как видно из комментариев; вы, по-видимому, пытались запустить это как расширение файла .html
, и это то, что пришло на ум, когда вы увидели вопрос, согласно комментарию, который я оставил:
Это расширение файла по умолчанию не будет анализировать директивы PHP, .php
будет и внутри среды PHP вместе с установленным веб-сервером.
Тем не менее, не исключено, что файлы .html
можно запускать как PHP, если вы проинструктируете свой сервер обрабатывать их как PHP и если это поддерживается.
Чтобы запустить это в среде php и на реальном (локальном) сервере, синтаксис:
-
http://localhost/file.php
в отличие отfile:///file.xxx
Как прокомментировал Фред-ii, вам нужно изменить теги PHP
<p class="w3-large w3-center">getDateExpected(21) days left</p>
К этому
<p class="w3-large w3-center"><?php getDateExpected(21);?> days left</p>
И измените это
if($date << $desired)
К этому
if($date < $desired)
Ваш веб-сервер пытается выполнить .html
как статическую страницу, потому что это расширение не связано с языком PHP и, следовательно, не анализируется с помощью движка PHP.
Для этого вам нужно будет убедиться, что страница имеет расширение .php
(связанное с движком PHP).
Поскольку вы хотите выполнить страницу .html
вместо этого, вы можете активировать перезапись мода на своем веб-сервере.
Если вы используете Apache, вы можете сделать это, следуя инструкциям здесь.
Тогда ты хотите дать указание Apache перенаправлять все запросы *.html в соответствующий файл *.php, не показывая браузеру реальное расширение (.php). Для этого вы можете следовать инструкциям в здесь.
Таким образом, пользователь введет в свой браузер URL-адрес http://www.example.com/foo.html
и веб-сервер, как только получит запрос GET для файла foo.html
, будет соответствовать соответствующему скрипту .php (с тем же именем, другим расширением) и автоматически выполнит страницу foo.php
с помощью PHP, не показывая браузеру пользователя изменение URL-адреса.