我正在尝试使用PHP构建URL,URL包含非拉丁字符(斯洛文尼亚语č,š和ž)。
我遇到了一些问题,因为我还需要用+
替换空格,并对非拉丁字符进行编码。
我需要做的是将此字符串'Knjižnica Bežigrad'
更改为:'Knji%C5%BEnica+Be%C5%BEigrad'
。因此,+
字符不得编码。
我试图爆炸字符串中的每个单词(字符串也可以有超过2个单词),然后执行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); ?>">
字符串$item->title
仍然包含空格而不是+
字符。
这就是我想要使用上面提到的方法。