我正在尝试使用 PHP 构建 URL,URL 包含非拉丁字符(斯洛文尼亚 č、š 和 ž)。
我遇到了一些问题,因为我还需要用非拉丁字符替换空格+
并对非拉丁字符进行编码。
我需要做的是将此字符串更改'Knjižnica Bežigrad'
为: 'Knji%C5%BEnica+Be%C5%BEigrad'
。所以+
字符不能被编码。
我试图分解字符串中的每个单词(字符串也可以有两个以上的单词),然后做一个 do a preg_replace
(+ 代替空格),最后urlencode
是每个单词(但不是+
字符)。
我没有设法将这种方法置于工作状态,也许有更好的方法?
补充说明:
如果我像这样回显这个字符串
<?php echo $item->title; ?>
我得到了价值'Knjižnica+Bežigrad'
。
如果我像这样回声
<?php echo urlencode($item->title); ?>
我得到的价值'Knji%C5%BEnica+Be%C5%BEigrad'
正是我所需要的。
但不知何故,当我像这样构造 URL
<a href="index.php&searchword=<?php echo urlencode($item->title); ?>">
string$item->title
仍然包含空格而不是+
字符。
这就是我想使用我上面提到的方法的方式。