$sanitizer->pageName() method

Sanitize as a ProcessWire page name

  • Page names by default support lowercase ASCII letters, digits, underscore, hyphen and period.

  • Because page names are often generated from a UTF-8 title, UTF-8 to ASCII conversion will take place when $beautify is enabled.

  • You may optionally omit the $beautify and/or $maxLength arguments and substitute the $options array instead.

  • When substituted, the beautify and maxLength options can be specified in $options as well.

  • If $config->pageNameCharset is "UTF8" then non-ASCII page names will be converted to punycode ("xn-") ASCII page names, rather than converted, regardless of $beautify setting.

Example

$test = "Hello world!";
echo $sanitizer->pageName($test, true); // outputs: hello-world

Usage

// basic usage
$string = $sanitizer->pageName(string $value);

// usage with all arguments
$string = $sanitizer->pageName(string $value, $beautify = false, $maxLength = 128, array $options = []);

Arguments

NameType(s)Description
valuestring

Value to sanitize as a page name

beautify (optional)bool, int, array

This argument accepts a few different possible values (default=false):

  • true (boolean): Make it pretty. Use this when using a pageName for the first time.
  • $options (array): You can optionally specify the $options array for this argument instead.
  • Sanitizer::translate (constant): This will make it translate non-ASCII letters based on InputfieldPageName module config settings.
  • Sanitizer::toAscii (constant): Convert UTF-8 characters to punycode ASCII.
  • Sanitizer::toUTF8 (constant): Convert punycode ASCII to UTF-8.
  • Sanitizer::okUTF8 (constant): Allow UTF-8 characters to appear in path (implied if $config->pageNameCharset is 'UTF8').
maxLength (optional)int, array

Maximum number of characters allowed in the name. You may also specify the $options array for this argument instead.

options (optional)array

Array of options to modify default behavior. See Sanitizer::name() method for available options.

Return value

string

See Also


$sanitizer methods and properties

API reference based on ProcessWire core version 3.0.148

Twitter updates

  • ProcessWire 3.0.153 (dev) focuses on comments field updates, significant refactoring/improvements to ProcessWire’s core Template class and PagesLoader class (which is used by the pages API variable), and we introduce a useful new pages API method— More
    20 March 2020
  • ProcessWire 3.0.152 core updates— This week we have some major improvements to our core date/time Inputfield, as well as a new ability to specify your own custom classes for Page objects— More
    6 March 2020
  • This week we’ve got a couple of really useful API-side improvements to the core in 3.0.151, including predefined image settings and static language translation improvements— More
    21 February 2020

Latest news

  • ProcessWire Weekly #307
    In the 307th issue of ProcessWire Weekly we're going to check out the latest dev branch updates, introduce some new third party modules, and more. Read on!
    Weekly.pw / 28 March 2020
  • ProcessWire 3.0.153 core updates
    This latest version of the core on the dev branch focuses on comments field updates, significant refactoring/improvements to ProcessWire’s core Template class and PagesLoader class (which is used by the $pages API variable), and we introduce a useful new $pages API method.
    Blog / 20 March 2020
  • Subscribe to weekly ProcessWire news

“ProcessWire is like a breath of fresh air. So powerful yet simple to build with and customise, and web editors love it too.” —Margaret Chatwin, Web developer