PHP substr Function: How to Extract and Manipulate Strings

php substr function

The substr() function in PHP returns part of a string. You give it a string, a starting point, and optionally a length. It cuts the string based on those numbers and gives you the piece you asked for.

Understand the substr Function in PHP

You use substr() when you need to pull out a part of a string. Maybe you want just the first few letters. Maybe you need everything after a certain point. It works well when you know the position of the part you want.

Here is the full syntax for substr():

substr(string $string, int $start, ?int $length = null): string

Here, what each part does.

  • $string
    This is the full string you want to work with. It can be any string.
  • $start
    This tells PHP where to start cutting. The count starts from 0. If you use a negative number, PHP counts from the end of the string.
  • $length (optional)
    This tells PHP how many characters to return. If you leave it out, PHP gives you everything from the start point to the end of the string. If the number is negative, PHP will stop that many characters from the end.

A Quick example:

$text = "Welcome to flatcoding tutorials";
echo substr($text, 0, 7); 

Output:

Welcome

PHP starts at index 0 and returns the next 7 characters.

You can also use a negative start value:

echo substr($text, -20);

This starts 20 characters from the end and goes to the end of the string. Its output:

flatcoding tutorials

Examples of the substr Function in PHP

Multibyte strings:

If you work with non-English characters like Japanese, Arabic, or emojis, substr() might not work correctly. That is because substr() counts bytes, not full characters.

$text = "こんにちは"; // Japanese
echo substr($text, 0, 3); // Broken output: こ

This function works on standard strings. For multibyte support, see other PHP functions.

Mix substr() with another string:

You can mix substr() with other string functions. Here is an example:

$email = "user@example.com";
$domain = substr(strrchr($email, "@"), 1);
echo $domain; 

The output:

example.com

This first finds the @ and then cuts the domain part.

Extracting file extensions:

You can get a file extension like this:

$file = "photo.jpg";
$ext = substr($file, strrpos($file, '.') + 1);
echo $ext; 

The output:

jpg

Wrapping Up

substr() gives you control over string parts based on position and length. It is simple, fast, and useful for many cases.

Here is a quick recap:

  • substr() returns part of a string with a start position and optional length.
  • Use positive or negative numbers to control where it starts and how much it returns.
  • If you leave out the length, PHP gives everything from the start to the end.
  • substr() works well to truncate text and slice values. Also to clean user input.
  • If the start index is too big, PHP returns an empty string.
  • If the length is too large, PHP stops at the end of the string.
  • Don’t use substr() inside loops unless needed.

Thank you for reading. Click here to see more PHP tutorials.

FAQ’s

How does substr() work in PHP?

It returns part of a string from a start position. You can also pass a length to control how many characters to return. Use negative values to start from the end of the string.

How to get a file extension using substr()?

Use strrpos() to find the last dot in the filename. Then use substr() to grab everything after that. Example: substr($file, strrpos($file, '.') + 1) gives the extension.

Similar Reads

Understanding the PHP Exclusive OR (XOR) Operator

In PHP, there is this interesting operator known as "exclusive OR," or just XOR. It is somewhat of an underdog…

PHP JSON Handling with json_encode & json_decode

JSON is used in most of your web applications for dealing with data, and so, in a way, PHP JSON…

PHP Bitwise Operators: AND, OR, XOR, NOT with Examples

Bitwise operators use symbols like &, |, and ^, and they work at the binary level. But once you understand…

PHP array_multisort Function with Examples

PHP array_multisort sorts many arrays or a multi level array in one go. It can sort data in numeric order…

PHP array_fill Function: Fill Array with Same Value

You can use the array_fill function in PHP when you must fill an array with one value. You may want…

Polymorphism in PHP: How It Works with Examples

PHP 5 added support for classes and interfaces. This made object-oriented code possible with one feature being polymorphism. That means…

PHP array_merge: Combine Multiple Arrays into One

You have two or more arrays. You want one. That is the problem array_merge solves in PHP. This function lets…

PHP is_dir Function: Check if a Directory Exists

Sometimes, when you run a script, you may encounter an error because the directory you're trying to access doesn't exist.…

PHP htmlspecialchars Function: Prevent XSS in HTML Output

A PHP script can break the page or allow code injection if it outputs user input directly into HTML. The…

filter_has_var Function: Check if Input Exists in PHP

User input does not always come through as expected. Sometimes values are missing or not set at all. This can…

Previous Article

PHP Bitwise Operators: AND, OR, XOR, NOT with Examples

Next Article

PHP mb_substr Function: How it Works with Examples

Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *


Subscribe to Get Updates

Get the latest updates on Coding, Database, and Algorithms straight to your inbox.
No spam. Unsubscribe anytime.