get current page url and change action

25,393

Solution 1

You can get current page url as follows:

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

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

The view helper $this->userAgent() returns an instance of Zend_Http_UserAgent that can provide you with many useful info.

If you want to get an action in your views you can get it as follows:

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

Not sure what you mean by 'changing an action'. You want to change it when you echo it, or you want to redirect user. Anyway, hope this will help.

Solution 2

If your current scope is a controller action, you can do this:

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

Solution 3

$front = Zend_Controller_Front::getInstance();
$fullUrl = 'http://' .
$front->getRequest()->getHttpHost() .
$front->getRequest()->getRequestUri();

Don't forget protocol(in this example http://) if you are going to use $fullUrl for href attributes

Solution 4

Late to the party for sure, but the following worked for me in a Zend 1 project:

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

If you're echoing out the (user supplied) URL on the page, it's a good idea to use htmlspecialchars() to avoid someone sending your users to http://example.com/?q=<script>nastyBusiness()</script>.

Share:
25,393
afsane
Author by

afsane

Programming has been became part of my life!

Updated on July 14, 2020

Comments

  • afsane
    afsane almost 4 years

    I need to give current page url and change action url. After that I want echo that in view file. I want do these in view file, not controller!

    Do you have any idea?

  • Marcin
    Marcin almost 13 years
    @afsane. You could get current action and url as I wrote, and use str_replace to change url's part with action to something else.
  • peter
    peter about 7 years
    For the scheme, you can do $front->getRequest()->getScheme()