在url php中替换字符串

时间:2018-04-20 09:23:14

标签: php

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

默认lang是:md

当我的用户访问网站http://site.ru/news/new-news-article时,他会显示语言md的内容。但如果他转到http://site.ru/ru/news/new-news-article,则会在la ru上显示内容,如果他继续http://site.ru/md/news/new-news-article,则会在md上显示内容。

我有3种情况。

我需要当用户位于前缀为md的语言/md/且没有时,更改网址上的网址。

我的代码:

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

但这仅适用于前缀/md/,如果用户在网址上没有前缀,则无效。

1 个答案:

答案 0 :(得分:0)

这似乎不是处理语言的正确方法,但以下代码应该可行。如果字符串中缺少'/md/'部分,则无法替换<?=(substr($_SERVER['REQUEST_URI'], 0, 4) === '/md/' ? str_replace('/md/', '/ru/', $_SERVER['REQUEST_URI']) : '/ru' . $_SERVER['REQUEST_URI'])?> 部分,因此您可以测试是否存在

func setUpNavigationBarTitleImage() {

    let navController = navigationController!

    let image = UIImage(named: "2-1 H Logo Home.png")!
    let imageView = UIImageView(image: image)

    let bannerWidth = navController.navigationBar.frame.size.width
    let bannerHeight = navController.navigationBar.frame.size.height

    imageView.frame = CGRect(x: 0, y: 0, width: bannerWidth, height: bannerHeight)
    imageView.contentMode = .scaleAspectFit
    imageView.center = navController.navigationBar.center

    navigationItem.titleView = imageView
}

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