如何替换URL中的语言标识符?
我需要一些帮助我写了下面的preg_replace。剧本的想法是让从域名语言名称:如何替换URL中的语言标识符?
如果我有一个
http://www.domainname.com/nl/this/is/a/test/index.asp
我想剥离(nl)
部分从域名。国联是语言变量,因此它可能是:
- http://www.domainname.com/nl/this/is/a/test/index.asp
- http://www.domainname.com/fr/this/is/a/test/index.asp
- http://www.domainname.com/de/this/is/a/test/index.asp
以上域表示语言目录...
<?php
$sitename = "http://" .$_SERVER["SERVER_NAME"];
$pagename = $_SERVER["PHP_SELF"]."this/is/a/test";
$language = "\/..\/";
$language1 = preg_replace("/$language/", "$1", "$pagename");
?>
- 我只使用脚本,我知道会有一个语言目录。
- 上面的脚本也从url中删除了这个/ a/test /(是)。 (告诉我来说,剧本是贪婪的。
什么是抓住从URL中语言的最佳方法是什么?
可有人请我提供一些指导做好。
感谢
这是我想出了用以下的建议,该脚本:
<?php
$mainurl = "http://" .$_SERVER["SERVER_NAME"];
$fullpagename = $_SERVER["PHP_SELF"];
$mainlanguage = preg_replace('%^/(\w+?)/.*$%', '$1', $_SERVER["REQUEST_URI"]);
$strippedpagename = preg_replace("/$mainlanguage\//", '$1', $_SERVER["REQUEST_URI"]);
?>
<?php echo "Full URL: ".$mainurl ?><br>
<?php echo "Full Page Name: ".$fullpagename ?><br>
<?php echo "Language: ".$mainlanguage ?><br>
<?php echo "Page Name No Language: ".$strippedpagename ?><br>
正是我需要的,或者是重新更优雅的方式?
也许是这样的:
$language = preg_replace('%^/(\w+?)/.*$%', '$1', $_SERVER["REQUEST_URI"])
正是我所要找的感谢! – 2011-03-28 17:52:29
只是再次检查它,即使文件夹长度超过2个字符,它仍在替换文件夹,是否有一种方法可以将其设置为仅在第一个/ da/ – 2011-03-28 18:31:25
时删除2个字符当然,用上面表达式中的\ w {2}替换'\ w +?'。 – svoop 2011-03-28 18:36:15
也许更简单:
$language = reset(explode('/', substr($_SERVER["REQUEST_URI"],1)));
无需正则表达式在这里。
也许我错了,但它看起来像你真的只是用$语言取代$ _SERVER ['PHP_SELF'] ...如果是这样的话,为什么不在你的$ pagename任务中使用$ language来开始用? – 2011-03-28 17:51:00
如何为所有不同的语言定义语言,这样我有一个文件,为我找到语言? – 2011-03-28 17:57:51
好的等待我现在明白了,对不起,误解了 – 2011-03-28 18:02:27