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

Twitter updates

  • ProcessWire 3.0.161 adds support for selector operator stacking, enabling you automatically broaden searches in a single pages.find() call— More
    26 June 2020
  • ProcessWire 3.0.160 adds powerful new text-searching operators, bringing a new level of power to page-finding API calls, especially when it comes to search engine type queries. Post also includes a demo search engine where you can test it all out live— More
    19 June 2020
  • Preview of ProcessWire 3.0.160 with auto-enable of two-factor authentication, new version of TfaEmail and TfaTotp, and new selector operators coming next week. More
    12 June 2020

Latest news

  • ProcessWire Weekly #319
    In the 319th issue of ProcessWire Weekly we're going to check out the latest core updates, introduce a couple of new third party modules, and highlight the downright stunning new website of Studio Pixelgold. Read on!
    Weekly.pw / 21 June 2020
  • Powerful new text-searching abilities in 3.0.160
    In ProcessWire 3.0.160 we’ve got some major upgrades and additions to our text-search abilities. This brings a whole new level of power to $pages->find() and similar API calls, especially when it comes to search engine type queries.
    Blog / 19 June 2020
  • Subscribe to weekly ProcessWire news

“We chose ProcessWire because of its excellent architecture, modular extensibility and the internal API. The CMS offers the necessary flexibility and performance for such a complex website like superbude.de. ProcessWire offers options that are only available for larger systems, such as Drupal, and allows a much slimmer development process.” —xport communication GmbH