drupal_urlencode
- 5 – 6
drupal_urlencode($text)
Wrapper around urlencode() which avoids Apache quirks.
Should be used when placing arbitrary data in an URL. Note that Drupal paths
are urlencoded() when passed through url() and do not require urlencoding()
of individual components.
Notes:
- For esthetic reasons, we do not escape slashes. This also avoids a 'feature'
in Apache where it 404s on any path containing '%2F'.
- mod_rewrite unescapes %-encoded ampersands, hashes, and slashes when clean
URLs are used, which are interpreted as delimiters by PHP. These
characters are double escaped so PHP will still see the encoded version.
- With clean URLs, Apache changes '//' to '/', so every second slash is
double escaped.
Parameters
$text
String to encode
Related topics
- Input validation
- Functions to validate user input.
- Formatting
- Functions to format numbers, strings, dates, etc.
Code
drupal/includes/common.inc, line 1901
<?php
function drupal_urlencode($text) {
if (variable_get('clean_url', '0')) {
return str_replace(array('%2F', '%26', '%23', '//'),
array('/', '%2526', '%2523', '/%252F'),
urlencode($text));
}
else {
return str_replace('%2F', '/', urlencode($text));
}
}
?>