How to limit string length in PHP ?

A string is a sequence of characters in PHP. The length of the string can be limited in PHP using various in-built functions, wherein the string character count can be restricted. 

Table of Content

  • Using for loop
  • Using mb_strimwidth() function
  • Using substr() method
  • Using Regular Expressions with preg_match()
  • Using substr_replace() for truncation with ellipsis

Using for loop

The str_split() function can be used to convert the specified string into the array object. The array elements are individual characters stored at individual indices. 

str_split($string)

Parameters: 

  • $string – The string to split into array

Example: A for loop iteration is performed over the array object until the desired length. The characters are displayed until the length is equivalent to the desired number of characters. 

PHP
<?php
    $string = "Beginner for Beginner is fun";
    echo("Original String : ");

    echo($string . "\n");
    echo("Modified String : ");

    $arr = str_split($string);

    for($i = 0; $i < 10; $i++) {
        print($arr[$i]);
    }
?>

Output
Original String : Beginner for Beginner is fun
Modified String : Beginner for 

Using mb_strimwidth() function

The mb_strimwidth function is used to get truncated string with specified width. It takes as input the string and the required number of characters. The characters after it are appended with an “!!” string. It returns the string with the trimmed length. 

mb_strimwidth(string, start, width, trim_pt)

Parameters: 

  • string – The string which is to be trimmed.
  • start – The start position offset.
  • width – The desired trim length.
  • trim_pt – The string that can be added to truncate the length of string with.

Example:

PHP
<?php
    // Declaring original string
    $string = "Beginner for Beginner is fun";
    echo("Original String : ");
    echo($string . "\n");

    // Trimming length of string
    $new_string =  mb_strimwidth($string, 0, 11, "!!");
    print("Modified String : ");
    print($new_string);
?>

Output

Original String : Beginner for Beginner is fun
Modified String : Beginner for!!

Using substr() method

The substr() function can be used to extract the specified string within the specified limits. The starting and ending indexes are specified and the equivalent number of characters between the start and end length are extracted. 

substr(string, start, end)

Parameters: 

  • string – The string to extract the substring from.
  • start – The starting index to extract the string from.
  • end – The ending index to extract the string.

Example:

PHP
<?php
    $string = "Beginner for Beginner is fun";
    echo("Original String : ");

    echo($string . "\n");
    echo("Modified String : ");

    if (strlen($string) > 10)
       $new_string = substr($string, 0, 10) . '!!!';
    echo($new_string . "\n");
?>

Output:

Original String : Beginner for Beginner is fun
Modified String : Beginner for !!!

Using Regular Expressions with preg_match()

Using preg_match() with a regular expression, you can limit the length of a string by matching the first few characters. The pattern /.{0,5}/ captures up to the first 5 characters.

Example:

PHP
<?php
    // Declaring original string
    $string = "Beginner for Beginner is fun";
    echo("Original String : ");
    echo($string . "\n");

    // Trimming length of string using regular expressions
    preg_match('/^.{0,11}/', $string, $matches);
    $new_string = $matches[0] . "!!";

    print("Modified String : ");
    print($new_string);
?>

Output
Original String : Beginner for Beginner is fun
Modified String : Beginner for g!!

Using substr_replace() for truncation with ellipsis

Using substr_replace()` in PHP truncates strings by replacing characters starting from a specified position. It’s effective for adding ellipses or other indicators when a string exceeds a desired length, providing concise summaries or previews.

Example:

PHP
<?php
$string = "This is a long sentence that needs to be truncated.";
$maxLength = 20;

if (strlen($string) > $maxLength) {
    $truncatedString = substr_replace($string, '...', $maxLength);
} else {
    $truncatedString = $string;
}

fwrite(STDOUT, $truncatedString . PHP_EOL);
?>

Output
This is a long sente...