【问题标题】:Keep PHP and HTML separated保持 PHP 和 HTML 分开
【发布时间】:2016-04-05 14:35:24
【问题描述】:

我的网站通过调用 API 打印用户位置。假设我在我的网站上的一个文件index.php 中有以下代码:

<?php
    $sIP = $_SERVER['REMOTE_ADDR'];
    $sURL = "http://ipinfo.io/" .$sIP . "/json";
    $sJSON = file_get_contents($sURL);
    $view = (object) array();
    $view->JSON = $sJSON;
?>

<!DOCTYPE html>
<html>
    <head>
        <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    </head>
    <body>
    <script>
        // global string of Data
        var gsData = <?= $view->JSON ?>

        $(document).ready(function(){
            var sRegion = gsData.region;
            $('#result').html(sRegion);
        });
    </script>
    <div>Region from data is:</div>
    <div id="result"></div>
</body>

不过,我需要将 PHP 脚本和标记分开。我无法将 PHP 脚本嵌入到 script 元素中。有一个 PHP 和一个 HTML 文件我该怎么做?

【问题讨论】:

  • 你可以使用模板引擎,有很多
  • @Lashane 什么是模板引擎?如果是简单的事情,对不起我的无知。
  • 一般来说,保持逻辑和标记分开是正确和重要的。但是,在您给定的示例中,我认为没有什么意义,因为这里不涉及任何逻辑。这“只是”一种被动的看法。使用一些小型 php sn-ps 的事实并没有改变这一点。

标签: php html


【解决方案1】:

编辑:使用include_once() 而不是include,因为您可以使用相对路径。

您可以将 PHP 移到其他文件中,然后将 include_once 移回主文件中。

HTML 文件仍必须是 .php 文件,但您可以将所有 PHP 脚本(include 除外)包含在不同的文件中,以获得更好的可维护性/可读性。

例如:

script.php

<?php
    $sIP = $_SERVER['REMOTE_ADDR'];
    $sURL = "http://ipinfo.io/" .$sIP . "/json";
    $sJSON = file_get_contents($sURL);
    $view = (object) array();
    $view->JSON = $sJSON;
?>

index.php

<?php include_once("script.php") ?>
<!-- ^ is the only PHP you will need to include a separate PHP file -->
<!DOCTYPE html>
<html>
    <head>
        <script src="//code.jquery.com/jquery-1.11.3.min.js"></script>
    </head>
    <body>
    <script>
        // global string of Data
        var gsData = <?= $view->JSON ?>

        $(document).ready(function(){
            var sRegion = gsData.region;
            $('#result').html(sRegion);
        });
    </script>
    <div>Region from data is:</div>
    <div id="result"></div>
</body>

【讨论】:

  • 我确保扩展名和文件名相同,但我在本地主机上收到此错误:Warning: include(script.php): failed to open stream: No such file or directory in - on line 1 Warning: include(): Failed opening 'script.php' for inclusion (include_path='.:') in - on line 1。如果你是我,你会怎么做?看起来 PHP 无法找到 script.php 文件。
  • 导入 PHP 文件可能需要单引号,而不是双引号。
  • 谢谢乔纳森。我遇到了同样的问题;它对你有用吗?
  • @CeCeXX 是的,它对我有用……也许是文件权限?
  • 谢谢。我无法将本地打印出来,但我想这是另一个问题。
【解决方案2】:

你也可以使用php框架,如Laravel、CodeIgniter或CakePHP,这样你就可以将你的php逻辑与html代码分离,然后将数据发送到html 页面。这对你未来的职业生涯来说是一个很好的练习。

【讨论】:

    【解决方案3】:

    您可以将PHP脚本放在一个单独的PHP文件中,并使用AJAX调用它,然后使用Javascript打印PHP脚本生成的JSON数据。

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 2019-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      相关资源
      最近更新 更多