Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Is there a PHP call for "current url" string?

Contributor ,
Jan 02, 2010 Jan 02, 2010

Is there such a thing as a variable that can be included in a PHP document that would translate into the full url of the current page?

For example, at the bottom of every CNN news article, there's a Facebook link designed to share the URL of the current page on Facebook. I doubt this link is hard-coded. That's got to be a variable.

How would I go about doing that? In other words, to replace this :

<a href="http://www.facebook.com/share.php?u=http://domain.com/file.php">

With this :

<a href="http://www.facebook.com/share.php?u=('$CURRENT_URL')">

(Or something like that.)

What would the syntax be?

TOPICS
Server side applications
643
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

LEGEND , Jan 02, 2010 Jan 02, 2010

mjyeager wrote:

Is there such a thing as a variable that can be included in a PHP document that would translate into the full url of the current page?

Yes. $_SERVER['PHP_SELF'].

Translate
LEGEND ,
Jan 02, 2010 Jan 02, 2010

mjyeager wrote:

Is there such a thing as a variable that can be included in a PHP document that would translate into the full url of the current page?

Yes. $_SERVER['PHP_SELF'].

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jan 06, 2010 Jan 06, 2010

Hi David,

How would you incorporate this into a static link?

For instance, to submit a url to Facebook, one would use the format :

http://www.facebook.com/share.php?u=http://domain.com/folder/file.html

So my first instinct (as a total n00b) was to do this :

<a href="http://www.facebook.com/share.php?u=<?php $_SERVER['PHP_SELF'] ?>">Submit to Facebook</a>

Which doesn't work. I also tried :

<a href="http://www.facebook.com/share.php?u=$_SERVER['PHP_SELF']">Submit to Facebook</a>

Which didn't work either.

What would be the correct syntax for a static link that would submit different urls depending on what page is using said link?

Thanks.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jan 07, 2010 Jan 07, 2010

$_SERVER['PHP_SELF'] is a variable like any other. It contains a value that's ready for you to use, but it doesn't do anything by itself. If you want to display that value, you need to use echo.

<a href="http://www.facebook.com/share.php?u=<?php echo $_SERVER['PHP_SELF']; ?>">Submit to Facebook</a>

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jan 07, 2010 Jan 07, 2010

That worked. Except it did not refer the full url. Only the folders + file.

<a href="http://www.facebook.com/share.php?u=<?php echo $_SERVER['PHP_SELF']; ?>">Facebook</a>

Will produce :

http://www.facebook.com/share.php?u=/folder/filename.php

Now granted, I can very easily enough hard-code "http://domain.com/" between the u= and the echo, but I was wondering if you had a better way to fo it.

PS: Can I thank you one more time, and point out how many countless hours you've saved me with your help in various threads? Well, even if I can't, I'm going to do so. 😃

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jan 07, 2010 Jan 07, 2010

This should do it, as long as it's supported on your server:

echo $_SERVER['SCRIPT_FILENAME'];

Can I thank you one more time, and point out how many countless hours you've saved me with your help in various threads? Well, even if I can't, I'm going to do so. 😃

No problem. I received a lot of help from others when I was learning. There's absolutely no obligation to do so, but if you ever plan to buy anything from Amazon, go through one of the links on my website (http://foundationphp.com/). Amazon pays me a small commission, at no extra cost to you. It helps pay for the upkeep of my site.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jan 07, 2010 Jan 07, 2010

That string actually fetches "/home/user/domain.com/folder/file.htm" (in other words, the full path on the server, and not the full url of the webpage).

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Jan 08, 2010 Jan 08, 2010

Sorry, so it does. I've never had the need to do this before, but the following should do the trick:

echo 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];

You'll need to test it on your server. Not all servers support the full range of $_SERVER variables.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Contributor ,
Jan 09, 2010 Jan 09, 2010
LATEST

Worked like a charm! Thanks.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines