繁体   English   中英

替换URL PHP中的字符串

[英]Replace string in url php

在我的网站上,我有2种语言: mdru

默认语言是: md

当我的用户访问站点http://site.ru/news/new-news-article时 ,他使用md语言显示内容。 但是,如果他访问http://site.ru/ru/news/new-news-article ,则会在lang ru上看到他的内容,并且如果他访问http://site.ru/md/news/new-news -文章 ,他在md上显示了内容。

我有3种情况。

当用户位于带有前缀/md/语言md上且没有时,需要更改ru上的url。

我的代码:

<link rel="alternate" hreflang="ru" href="https://<?=$_SERVER['HTTP_HOST']?><?=str_replace('/md/', '/ru/', $_SERVER['REQUEST_URI'])?>">

但这仅适用于前缀/md/ ,如果用户在url上没有前缀,则无法使用。

这似乎不是处理语言的正确方法,但是下面的代码应该可以工作。 如果字符串中缺少'/md/'部分,它将无法替换,因此您可以测试是否存在

<?=(substr($_SERVER['REQUEST_URI'], 0, 4) === '/md/' ? str_replace('/md/', '/ru/', $_SERVER['REQUEST_URI']) : '/ru' . $_SERVER['REQUEST_URI'])?>

注意 :有更好的URL语言系统的不同方法。 它不应该真正依赖于请求URI来知道当前页面是什么以及替代页面是什么。 在所有情况下,如果该变量与其浏览器设置不同,则应设置一个变量以了解当前用户首选的语言。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM