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); ?>">
string$item->title
には、文字ではなくスペースがまだ含まれています+
。
それが、私が上で述べたアプローチを使いたかった方法です。