$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

  • Weekly update for Jan 10, 2020—front-end file uploads in LoginRegisterPro with InputfieldFrontendFile module: More
    10 January 2020
  • If you haven't seen it yet, be sure to check out this great infographic by @teppokoivula in ProcessWire Weekly #294— How ProcessWire professionals work—the results of our recent weekly polls summarised: weekly.pw/issue/294/#how…
    3 January 2020
  • Today we have a new master version released, 3.0.148! There are 25 new versions worth of upgrades, fixes and optimizations in this new master version, relative to the previous. In this post we take a closer look at what’s new, how to upgrade, & more— More
    3 January 2020

Latest news

  • ProcessWire Weekly #297
    In the 297th issue of ProcessWire Weekly we're going to check out the latest core updates (ProcessWire 3.0.149) and introduce a new third party module called StaticWire. Read on!
    Weekly.pw / 18 January 2020
  • ProcessWire 3.0.148 new master
    Today we have a new master version released, version 3.0.148! The last master version was 3.0.123, so there are 25 new versions worth of upgrades, fixes and optimizations in this new master version, relative to the previous. In this post we’ll take a closer look at what’s new, how to upgrade, and more.
    Blog / 3 January 2020
  • 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