<?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> <!-- splitted from ./en/functions/strings.xml, last change in rev 1.2 --> <refentry xml:id="function.trim" xmlns="http://docbook.org/ns/docbook"> <refnamediv> <refname>trim</refname> <refpurpose>Strip whitespace (or other characters) from the beginning and end of a string</refpurpose> </refnamediv> <refsect1 role="description"> &reftitle.description; <methodsynopsis> <type>string</type><methodname>trim</methodname> <methodparam><type>string</type><parameter>string</parameter></methodparam> <methodparam choice="opt"><type>string</type><parameter>characters</parameter><initializer>" \n\r\t\v\0"</initializer></methodparam> </methodsynopsis> <para> This function returns a string with whitespace stripped from the beginning and end of <parameter>string</parameter>. Without the second parameter, <function>trim</function> will strip these characters: <!-- sorted by importance. Printed 3 times: trim, ltrim, rtrim --> <itemizedlist> <listitem> <simpara> " " (<acronym>ASCII</acronym> <literal>32</literal> (<literal>0x20</literal>)), an ordinary space. </simpara> </listitem> <listitem> <simpara> "\t" (<acronym>ASCII</acronym> <literal>9</literal> (<literal>0x09</literal>)), a tab. </simpara> </listitem> <listitem> <simpara> "\n" (<acronym>ASCII</acronym> <literal>10</literal> (<literal>0x0A</literal>)), a new line (line feed). </simpara> </listitem> <listitem> <simpara> "\r" (<acronym>ASCII</acronym> <literal>13</literal> (<literal>0x0D</literal>)), a carriage return. </simpara> </listitem> <listitem> <simpara> "\0" (<acronym>ASCII</acronym> <literal>0</literal> (<literal>0x00</literal>)), the <literal>NUL</literal>-byte. </simpara> </listitem> <listitem> <simpara> <!-- not \v, since not supported by PHP --> "\x0B" (<acronym>ASCII</acronym> <literal>11</literal> (<literal>0x0B</literal>)), a vertical tab. </simpara> </listitem> </itemizedlist> </para> </refsect1> <refsect1 role="parameters"> &reftitle.parameters; <para> <variablelist> <varlistentry> <term><parameter>string</parameter></term> <listitem> <para> The <type>string</type> that will be trimmed. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>characters</parameter></term> <listitem> <para> Optionally, the stripped characters can also be specified using the <parameter>characters</parameter> parameter. Simply list all characters that you want to be stripped. With <literal>..</literal> you can specify a range of characters. </para> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1 role="returnvalues"> &reftitle.returnvalues; <para> The trimmed string. </para> </refsect1> <refsect1 role="examples"> &reftitle.examples; <para> <example> <title>Usage example of <function>trim</function></title> <programlisting role="php"> <![CDATA[ <?php $text = "\t\tThese are a few words :) ... "; $binary = "\x09Example string\x0A"; $hello = "Hello World"; var_dump($text, $binary, $hello); print "\n"; $trimmed = trim($text); var_dump($trimmed); $trimmed = trim($text, " \t."); var_dump($trimmed); $trimmed = trim($hello, "Hdle"); var_dump($trimmed); $trimmed = trim($hello, 'HdWr'); var_dump($trimmed); // trim the ASCII control characters at the beginning and end of $binary // (from 0 to 31 inclusive) $clean = trim($binary, "\x00..\x1F"); var_dump($clean); ?> ]]> </programlisting> &example.outputs; <screen> <![CDATA[ string(32) " These are a few words :) ... " string(16) " Example string " string(11) "Hello World" string(28) "These are a few words :) ..." string(24) "These are a few words :)" string(5) "o Wor" string(9) "ello Worl" string(14) "Example string" ]]> </screen> </example> </para> <para> <example> <title>Trimming array values with <function>trim</function></title> <programlisting role="php"> <![CDATA[ <?php function trim_value(&$value) { $value = trim($value); } $fruit = array('apple','banana ', ' cranberry '); var_dump($fruit); array_walk($fruit, 'trim_value'); var_dump($fruit); ?> ]]> </programlisting> &example.outputs; <screen> <![CDATA[ array(3) { [0]=> string(5) "apple" [1]=> string(7) "banana " [2]=> string(11) " cranberry " } array(3) { [0]=> string(5) "apple" [1]=> string(6) "banana" [2]=> string(9) "cranberry" } ]]> </screen> </example> </para> </refsect1> <refsect1 role="notes"> &reftitle.notes; <note> <title>Possible gotcha: removing middle characters</title> <para> Because <function>trim</function> trims characters from the beginning and end of a <type>string</type>, it may be confusing when characters are (or are not) removed from the middle. <literal>trim('abc', 'bad')</literal> removes both 'a' and 'b' because it trims 'a' thus moving 'b' to the beginning to also be trimmed. So, this is why it "works" whereas <literal>trim('abc', 'b')</literal> seemingly does not. </para> </note> </refsect1> <refsect1 role="seealso"> &reftitle.seealso; <para> <simplelist> <member><function>ltrim</function></member> <member><function>rtrim</function></member> <member><function>str_replace</function></member> </simplelist> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"~/.phpdoc/manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->