PHP在PHP中设置全局常量中的硬编码URL

时间:2015-06-26 00:25:50

标签: javascript php html css

有人可以帮助我避免如何在PHP中使用硬编码的URL,这样当您的网站准备好生存时,您不必查找所有文件并编辑所有硬编码的网址。

通过这种方式,我创建了一个Global.php 在我的Global.php上 我这里有这些代码。

define("main", "http://mainpage.com");
define("registration", "http://mainpage.com/register");
define("login", ""http://mainpage.com/login");

在我的其他网站上,我这里有一个注册页面。当我想使用我的全球声明时,我会像这样做。

<html>
<body>
<?php include'../Global.php'; ?>
    <div class="nav">
                    <div class="navcontainer">
                            <div class="twelve columns">
                                <ul id="menu">
                                      <li><a href="<?php echo $mainpage;?>">
            mainpage</button></a></li>
                                      <li><a href="<?php echo $register;?>"> <button class="navbutton">
            register</button></a></li>
                                      <li><a href="<?php echo $login;?>"><button class="navbutton">
            Log in</button></a></li>
                              </ul>
                </div>
            </div>
                </div>
        </div>

</body>
</html>

我注意到的是,在我的Global.php上...我的域名总是重复..我想要做的是,我将只定义主页面,我将只将主页连接到目录路径或页面的文件名..

Global.php

define("main", "http://mainpage.com");

<html>
<body>
<?php include'../Global.php'; ?>
    <div class="nav">
                    <div class="navcontainer">
                            <div class="twelve columns">
                                <ul id="menu">
                                      <li><a href="<?php echo $mainpage";?  >">
            mainpage</button></a></li>
                                      <li><a href="<?php echo $mainpage . "/register";?>"><button class="navbutton">
            register</button></a></li>
                                      <li><a href="<?php echo $main page . "/login";?>"><button class="navbutton">
            Log in</button></a></li>
                              </ul>
                </div>
            </div>
                </div>
        </div>

</body>
</html>

但这赢了' 工作。有人可以帮我如何获取页面的目录文件和/或文件名,并将其与全局定义主页连接?

3 个答案:

答案 0 :(得分:0)

您可以使用相对网址 - 您不必拥有http://example.com,请使用:

<a href="/main.php">Main</a>

无论域名如何,它都能正常运作。

编辑:如果main.php不在http://example.com/的正下方,则需要在其前面加上到达它的路径,例如:

define('URLBASE', '/path/to');
<a href="<?php echo URLBASE ?>/main.php">Main</a>

您是否选择使用&lt;?=或&lt;?php取决于您的PHP版本,配置和个人偏好。

答案 1 :(得分:0)

您的问题只是语法错误。

首先,您定义main 常量,然后在HTML页面中尝试回显mainpage 变量。不一样的名字,不一样......

以下代码就像魅力一样

<?php
define("MAINPAGE", "http://mainpage.com");
?>

<html>
  <body>
    <div class="nav">
      <div class="navcontainer">
    <div class="twelve columns">
      <ul id="menu">
        <li><a href="<?=MAINPAGE?>"> mainpage</a></li>
        <li><a href="<?=MAINPAGE . '/register'?>">
          <button class="navbutton">register</button></a></li>
        <li><a href="<?=MAINPAGE . '/login'?>">
          <button class="navbutton">Log in</button></a></li>
      </ul>
    </div>
      </div>
    </div>
</div>

</body>
</html>

您会注意到我使用短标记<?=expr?>,其中 expr 可以是任何有效的PHP表达式,使用常量,变量和运算符。它只是<?php echo expr;?>的缩写。

带寄存器的行等同于:

<li><a href="<?php echo MAINPAGE . '/register';?>">

我使用常量,但我可以定义一个变量:

$mainpage = "http://mainpage.com";

然后前一行是:

<li><a href="<?=$mainpage . '/register'?>">

当然,您不需要PHP来进行追加:

<li><a href="<?=MAINPAGE?>/register">

答案 2 :(得分:0)

如前所述,导航栏的最佳方法是相对寻址。

<li><a href="index.php">
          <button class="navbutton">Home</button></a></li>
<li><a href="registration.php">
          <button class="navbutton">Register</button></a></li>
<li><a href="login.php">
          <button class="navbutton">Log in</button></a></li>

我还发现需要用一个常量定义href链接。 在php配置文件中:

Define('SOCIAL_MEDIA_FACEBOOK' ,'');

在HTML / PHP导航文件中:

<?php if(SOCIAL_MEDIA_FACEBOOK != '') { ?>
            <a href="<?=SOCIAL_MEDIA_FACEBOOK?>">
                <img src="images/Facebook.png"></a>
<?php } ?>

这样,当我将代码提供给客户端时,没有Facebook图标,而客户端提供了链接。