【php】php5.4より前でHTTP build query をRFC3986でやりたい
問題
php5.4より前のphpだと、http_build_query()の第4引数のenc_typeにPHP_QUERY_RFC3986を指定できない。
RFC3986でHTTP build query するには?
答え
この程度の対応で済むこともある。
スペースのエンコードを変えるには、以下のように。
$query = str_replace('+', '%20', http_build_query($arr));
チルダもそのままにしておいて欲しかったら、以下のように。
$query = str_replace(array('+', '%7E'), array('%20', '~'), http_build_query($arr));
古いphp環境でOAuthのリクエストを作るときなどに、これでしのげることもあります。
コメント