PHP,如果URL等于此值,则执行操作 - php

因此,我的页面标题是Magento模板的一部分;我希望它显示2个选项中的1个,具体取决于URL是什么。如果URL为选项1,则显示标题1。如果URL为其他内容,则显示标题2。这是我想到的,但是这使我的页面崩溃了:

<div class="page-title">
<h1><?php
$host = parse_url($domain, PHP_URL_HOST);
if($host == 'http://domain.com/customer/account/create/?student=1') {
echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!')
}
else
{
echo $this->__('Create an Account')
}
?></h1>
</div>

有人有主意吗?

编辑:所以它应该看起来像这样吗?

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'http://domain.com/customer/account/create/?student=1')

参考方案

您是否正在寻找页面当前所在的URL?您使用错误的parse_url方式;也就是说,如果您只想获取主机或域,即仅“ dev.obtura.com”。看来您想要的还不止这些。此外,您永远不会设置$domain变量,因此parse_url()不知道如何处理它。因此,您的if语句将始终返回“创建帐户”。

而是使用$_SERVER变量设置$host

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];

您还需要从检查中删除“ http://”-$host仅包含“ http://”之后的所有内容

按照Aron Cederholm的建议,您需要在echo语句的末尾添加分号(;)。

因此,您的PHP代码应如下所示:

$host = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if($host == 'domain.com/customer/account/create/?student=1') 
{
    echo $this->__('Create an account if you are a Post Graduate Endodontic Resident and receive our resident pricing. Please fill in all required fields. Thank you!');
}
else
{
    echo $this->__('Create an Account');
}

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…

PHP标头功能不起作用 - php

我曾经使用此功能从一个PHP页面重定向到另一个:header( 'Location: student.php?cnp='.$_REQUEST['name']) ; 在我的本地主机中,它确实可以工作,但是如果在Internet中对其进行测试,则不会重定向。我也尝试给出完整的路径(如http://.../student.p…

排序PHP迭代器 - php

有没有一种简单的方法可以在PHP中对迭代器进行排序(而不仅仅是将其全部拉入数组并进行排序)。我有一个具体的例子是DirectoryIterator,但是对所有迭代器都有一个通用的解决方案会很好。$dir = new DirectoryIterator('.'); foreach ($dir as $file) echo $file->…

为什么在PHP中将函数存储为变量 - php

我已经在php文档中看到了这种做法:$foo = function() { echo 'foo'; } $foo(); 您为什么要这样做,而不仅仅是:function foo() { echo 'foo'; } foo(); 参考方案 它们在某些方面很有用。我个人使用它们是因为它们比实际功能更易于控制。而且,匿名函数可…