有人可以帮助我避免如何在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>
但这赢了' 工作。有人可以帮我如何获取页面的目录文件和/或文件名,并将其与全局定义主页连接?
答案 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图标,而客户端提供了链接。