【问题标题】:Calling PHP function in HTML在 HTML 中调用 PHP 函数
【发布时间】:2016-11-20 19:12:40
【问题描述】:

我是 PHP 新手。我确定这是一个简单的问题。我试图在我的 html 文件的标签中调用函数 getDateExpected。我希望它以如下文本形式返回数字。这是怎么做到的?我看到 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>

【问题讨论】:

  • function getDateExpected($desired){ $date = date ("d"); if($date &lt;&lt; $desired){ echo $desired - $date; }else{ echo $date-$desired; } } 那么所有这些调用/定义在哪里?
  • &lt;p class="w3-large w3-center"&gt;getDateExpected(21) days left&lt;/p&gt; 函数名周围没有php标签,如果你打算在它的位置执行它。
  • 您需要将php代码包装在php标签中-&lt;p class="w3-large w3-center"&gt;&lt;?php getDateExpected(21); ?&gt; days left&lt;/p&gt;
  • if($date &lt;&lt; $desired) - 那些&lt;&lt; 不会做你期望他们做的事情。
  • 还要确保您在安装了网络服务器并使用正确的扩展名来解析 php 指令的 php 环境下运行它。

标签: php html function echo call


【解决方案1】:

“感谢 Fred 的帮助!您已完全回答并解决了所有问题,但遗憾的是我无法选择您的答案,因为它只是一个评论):如果您能做出正确的回答,我会选择你的作为正确的未来访问者希望更好地理解 – AdrianDevera"

(这是完整概述代码失败的较晚答案,并应 OP 的要求发布):

您发布的代码存在一些问题。

让我们一一回顾:

if($date << $desired)

&lt;&lt; 字符(在 PHP 中,在 cmets 中看到您来自 C 背景)是按位运算符,不会按照您的期望执行,如 “检查日期是否小于x"
&lt; 小于):

if($date < $desired)

然后我们有这个:

<p class="w3-large w3-center">getDateExpected(21) days left</p>

它的getDateExpected() 函数没有包含在php 标签中&lt;?php?&gt;,因此它永远不会被调用/执行,它现在只是一个字符串;查看您的 HTML 源代码,您会准确地看到这一点,以及未解析的 PHP 代码。

因此,将其更改为以下内容:

<p class="w3-large w3-center"><?php getDateExpected(21) ;?> days left</p>

除此之外,如 cmets 所示;您显然试图将其作为.html 文件扩展名运行,根据我留下的评论,这是在看到问题时想到的:

"also make sure you are running this under a php environment with a webserver installed and using the proper extension to parse php directives."

默认情况下,该文件扩展名不会解析 PHP 指令,.php 将在 PHP 环境中以及安装的网络服务器中。

然而,如果您指示您的服务器将它们视为 PHP 并且受支持,则将 .html 文件作为 PHP 运行并非不可能。

要在 php 环境和实时(本地)服务器上运行它,语法是:

  • http://localhost/file.php 而不是 file:///file.xxx

【讨论】:

  • 感谢 Fred 在您的多部分解决方案中提供详细而透彻的解释。我犯的非常简单的错误,其他任何人都应该从中吸取教训。接受你的完整和完整的答案!
  • @AdrianDevera 不客气,当像你这样的人感谢详细的答案以便从中学习而不是被抛出代码“只是因为”和“只是修复并开始”,谢谢,干杯
【解决方案2】:

正如 Fred-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)

【讨论】:

  • 谢谢。我更改了以下内容,更改后值未显示在所需位置。还有什么我做错了吗?如果我在 php 文件中调用该函数,它会按预期工作,但不会在 HTML 文件本身中工作。
  • “把这个...改成这个” - 有一个原因,一个具体的原因。
【解决方案3】:

您的网络服务器尝试将.html 作为静态页面执行,因为此扩展与 PHP 语言无关,因此不会被 PHP 引擎解析。 为此,您需要确保页面具有 .php 扩展名(与 PHP 引擎相关联)。
当您想执行 .html 页面时,您可能需要在您的网络服务器上激活 mod 重写。
如果您使用的是 Apache,您可以按照说明进行操作 here
然后,您希望指示 Apache 将所有 *.html 请求重定向到相应的 *.php 文件,而不向浏览器显示真正的扩展名 (.php)。为此,您可以按照here 中的说明进行操作。 这样,用户将在他的浏览器中输入 url http://www.example.com/foo.html 和网络服务器,一旦收到文件 foo.html 的 GET 请求,将匹配相应的 .php 脚本(同名,不同扩展名)并自动执行页面foo.php 使用 PHP 而不向用户浏览器显示 URL 的更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-04
    • 2016-03-31
    • 1970-01-01
    • 2014-09-13
    • 2013-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多