<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// This is the beginning of the sample code and is unrelated to the article content</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Welcome to the PHP string handling example!\n"</span></span><span>;
</span><span><span class="hljs-variable">$example</span></span><span> = </span><span><span class="hljs-string">"Sample String"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Original string length: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$example</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<p><hr></p>
<p>In PHP, string handling is a very common task during development. Many times, we not only need to get the length of a string but also deal with unnecessary trailing whitespace. Here, <code></span><span><span class="hljs-title function_ invoke__">chop</span></span><span>()
By using chop() to remove trailing spaces, we can get a "clean" string before checking its length.
strlen() is used to get the byte length of a string. For standard ASCII characters, byte length matches character length, but for multibyte characters (like Chinese), the results may differ.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>); </span><span><span class="hljs-comment">// Outputs 5</span></span><span>
</span></span>
If we want to get the actual effective length of a string (excluding trailing whitespace), we can use chop() first and then strlen():
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello World "</span></span><span>;
</span><span><span class="hljs-variable">$effectiveLength</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-title function_ invoke__">chop</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Effective length: "</span></span><span> . </span><span><span class="hljs-variable">$effectiveLength</span></span><span>; </span><span><span class="hljs-comment">// Outputs 11</span></span><span>
</span></span>
This method prevents trailing spaces or line breaks from affecting the length calculation, making it especially useful when processing user input or reading file content.
If you want to remove whitespace from both the beginning and end of a string, use trim() before getting the length:
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">" Hello World "</span></span><span>;
</span><span><span class="hljs-variable">$cleanLength</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-title function_ invoke__">trim</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>));
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Length after trimming both ends: "</span></span><span> . </span><span><span class="hljs-variable">$cleanLength</span></span><span>; </span><span><span class="hljs-comment">// Outputs 11</span></span><span>
</span></span>
Additionally, for multibyte characters (like Chinese or Japanese), it’s better to use mb_strlen() instead of strlen() to avoid miscalculations:
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello, 世界 "</span></span><span>;
</span><span><span class="hljs-variable">$effectiveLength</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-title function_ invoke__">chop</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>), </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Effective length: "</span></span><span> . </span><span><span class="hljs-variable">$effectiveLength</span></span><span>; </span><span><span class="hljs-comment">// Outputs 5</span></span><span>
</span></span>
chop() removes trailing whitespace, and rtrim() is its synonym.
strlen() calculates string length and works directly with ASCII characters.
Using chop() with strlen() ensures accurate length detection after trimming trailing spaces.
For multibyte characters, mb_strlen() is recommended.
With this technique, developers can more precisely handle string input and length calculation, avoiding issues caused by whitespace.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// End of sample code, unrelated to article content</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"\nString handling demonstration complete.\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>