サイトの URL の URI セグメントにスペースと括弧を含める必要があります (セグメントは DB クエリに使用されます)。したがって、私rawurlencode()
は文字列を受け取り、次にrawurldecode()
同じ文字列を受信ページに表示しますが、完全に同じではありません。スペースは問題ありませんが、括弧は 16 進文字コードに残されています。これにより、データベースクエリが完全に台無しになります。rawurldecode
に渡された正確な文字列を生成しない理由はrawurlencode()
何ですか?
元の文字列 = コンプトン コミュニティ カレッジ (CA)
エンコードされた文字列 =
Compton%20Community%20College%20%28CA%29
デコードされた文字列の vardump は
string(38) "Compton Community College (CA)"
ビューページのソースで
"Compton Community College (CA)"
編集
どうやらこれは Codeigniter のものかもしれません (私が使用しています)。コード
<a href='<?php echo site_url('college/'.rawurlencode($player['college'])); ?>'>
の正しいURLを生成しますhttp://localhost/ff/index.php/college/Compton%20Community%20College%20%28CA%29
最終的な URI セグメントは、次の関数のパラメーターとして受信されます。
function view_college($college = FALSE)
{
if($college === FALSE)
{//no college provided
redirect('');
}
$college = rawurldecode($college);
この時点で、文字列は既に上に表示されている形式になっています。だから、何かを台無しにしているか、CIが文字列を正しく渡すことを期待できないだけかもしれません。:-(考え?