Я пытаюсь создать правильную строку запроса для GSA с частичными полями, содержащими фильтры, выбранные пользователями. Изучите документацию Google Мне нужно дважды кодировать значения. Я пишу эту простую функцию, но если я выберу фильтр, содержащий специальные символы (например, перо foo), он не сработает, и GSA вернет мне 0 результатов.
protected function myUrlEncode($str) {
$str = rawurlencode($str);
$replacements = array('%2D', '%2E', '%7E');
$entities = array('-','.','~');
$str = str_replace($entities, $replacements, $str);
return urlencode($str);
}
эта функция возвращает foo% 2527s% 2520pen, который я использую в URL: & partialfields = metaname: foo% 2527s% 2520pen