2011-05-08 107 views

回答

19

你可以得到当前页面的URL如下:

$uri = Zend_Controller_Front::getInstance()->getRequest()->getRequestUri(); 

    // or using userAgent view helper: 
    $uri = $this->userAgent()->getServerValue('request_uri'); 

$this->userAgent()返回Zend_Http_UserAgent实例,它可以为你提供很多有用的信息的视图助手。

如果你想在你的意见的行动,你可以得到它,如下所示:

Zend_Controller_Front::getInstance()->getRequest()->getActionName(); 

不知道你的“改变行动”的意​​思。你想在你回应时改变它,或者你想重定向用户。无论如何,希望这会有所帮助。

+1

雅我想要显示网址时更改操作! – afsane 2011-05-08 10:56:02

+1

@afsane。您可以按照我的写法获取当前操作和网址,并使用'str_replace'将url的部分更改为其他操作。 – Marcin 2011-05-08 10:58:41

+0

aha,thanx很多;) – afsane 2011-05-08 11:00:48

4

如果您当前的范围是一个控制器动作,你可以这样做:

$uri = $this->view->serverUrl() . $this->view->url(); 
1

$前=在Zend_Controller_Front ::的getInstance();
$ fullUrl ='http://'。
$ front-> getRequest() - > getHttpHost()。
$ front-> getRequest() - > getRequestUri();

不要,如果你要使用$fullUrlhref忘记协议(在这个例子中http://)属性

+0

对于该方案,您可以执行'$ front-> getRequest() - > getScheme()' – peter 2017-02-17 21:51:32

0

迟到了是肯定的,但在一个Zend 1以下项目的工作对我来说:

<?php echo htmlspecialchars($this->serverUrl(true)); ?> 

如果你呼应了页面上的(用户自备)URL,这是一个好主意,使用用htmlspecialchars(),以避免别人送你的用户http://example.com/?q=<script>nastyBusiness()</script>