$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.200

Twitter updates

  • New blog: Debugging tools built-in to ProcessWire. ProcessWire's core comes with a lot of helpful debugging tools and capabilities built-in. In this post we'll cover some of these useful tools and how to use them… More
    1 July 2022
  • A review of weekly core updates, plus a simple recipe for a very effective listing cache—More
    24 June 2022
  • Weekly update: Making ProcessWire render pages at old WordPress URLs (or building a simple/custom URL router in PW): More
    17 June 2022

Latest news

  • ProcessWire Weekly #424
    In the 424th issue of ProcessWire Weekly we'll check out the latest weekly update from Ryan, introduce a new third party module, and more. Read on!
    Weekly.pw / 25 June 2022
  • Debugging tools built into ProcessWire
    ProcessWire's core comes with a lot of helpful debugging tools and capabilities built-in. In this post we'll cover some of these useful tools and how to use them.
    Blog / 1 July 2022
  • Subscribe to weekly ProcessWire news

“Yesterday I sent the client a short documentation for their ProcessWire-powered website. Today all features already used with no questions. #cmsdoneright—Marc Hinse, Web designer/developer