Recipe 1.9. Trimming Blanks from a String


1.9.1. Problem

You want to remove whitespace from the beginning or end of a string. For example, you want to clean up user input before validating it.

1.9.2. Solution

Use ltrim( ), rtrim( ), or trim( ). ltrim( ) removes whitespace from the beginning of a string, rtrim( ) from the end of a string, and trim( ) from both the beginning and end of a string:

<?php $zipcode = trim($_REQUEST['zipcode']); $no_linefeed = rtrim($_REQUEST['text']); $name = ltrim($_REQUEST['name']); ?>

1.9.3. Discussion

For these functions, whitespace is defined as the following characters: newline, carriage return, space, horizontal and vertical tab, and null .

Trimming whitespace off of strings saves storage space and can make for more precise display of formatted data or text within <pre> tags, for example. If you are doing comparisons with user input, you should trim the data first, so that someone who mistakenly enters "98052" as their zip code isn't forced to fix an error that really isn't one. Trimming before exact text comparisons also ensures that, for example, "salami\n" equals "salami." It's also a good idea to normalize string data by trimming it before storing it in a database.

The trim( ) functions can also remove user-specified characters from strings. Pass the characters you want to remove as a second argument. You can indicate a range of characters with two dots between the first and last characters in the range:

<?php // Remove numerals and space from the beginning of the line print ltrim('10 PRINT A$',' 0..9'); // Remove semicolon from the end of the line print rtrim('SELECT * FROM turtles;',';'); ?>

This prints:

PRINT A$ SELECT * FROM turtles

PHP also provides chop( ) as an alias for rtrim( ). However, you're best off using rtrim( ) instead because PHP's chop( ) behaves differently than Perl's chop( ) (which is deprecated in favor of chomp( ) , anyway), and using it can confuse others when they read your code.

1.9.4. See Also

Documentation on trim( ) at http://www.php.net/trim, ltrim( ) at http://www.php.net/ltrim, and rtrim( ) at http://www.php.net/rtrim.




PHP Cookbook, 2nd Edition
PHP Cookbook: Solutions and Examples for PHP Programmers
ISBN: 0596101015
EAN: 2147483647
Year: 2006
Pages: 445

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net