Jump to content

Recommended Posts

Hi, PHP geniuses. I am a PHP novice and am stuck. For someone knowledgeable, this should be pretty easy, but it is stumping me.

 

I have a site that is multiple languages. The only difference in the pages from one language to the next is a "/it/" at the end of the main url before the page name.

 

I need  2 inline PHP statements that create hrefs:

 

One that creates a link that says "remove 'it/' from the current page URL

 

One that takes the current url and ads a 'it/" after the domain name and before the page name in a link.

 

Example:

 

If the current page URL is http://www.xxx.com/it/test/ - it creates a link that is http://www.xxx.com/test/

 

The second piece of code creates a link that changes http://www.xxx.com/test/ to http://www.xxx.com/it/test/

 

I have played with some PHP string replace commands, but I can't get it to work.

 

I need something like:  <a href='<?php echo str_replace ("/it/",""; ?>'>

 

Anyway, bad code example, but you get the idea. Anyone know a quick fix here?

Link to comment
https://forums.phpfreaks.com/topic/275556-addingremoving-string-from-a-url/
Share on other sites

// Example #1
$url = 'http://www.test.com/it/test/';
$new_url = str_replace('/it/', '/', $url);

echo $new_url;

// Example #2
$url = 'http://www.test.com/test/';
$new_url = str_replace('test.com/', 'test.com/it/', $url);

echo $new_url;

This, however, relies on the fact that you know the domain name (test.com in these examples). If you want it more dynamic, take a look at Regular Expressions, you can do a lot of interesting text manipulation stuff with it!

 

- W

Yomanny... that looks like what I need to replace the code. But how do I 'on the fly' pull the current URL... and how do I embed the <?php echo $new_url ?> in line with the HTML href quotes?

 

<a href="<?php echo $new_url ?>">Italian</a> - that syntax doesn't work.

O.K., it with your help and a little more research, I figured this out!

 

 

<?php $domain = $_SERVER['HTTP_HOST'];
$queryString = $_SERVER['QUERY_STRING'];
$url = "http://" . $domain . $_SERVER['REQUEST_URI'];
$new_url = str_replace('test.com/', 'test.com/it/', $url);?>
 
<a href="<?php echo $new_url;?>">Italiano</a>
 
It works beautifully!
 
Thank you YoManny for your help!
This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.