How to replace only the first occurrence of a string in PHP
Jul 11, 2025 am 01:09 AMThe first match to replace a string in PHP can be achieved by preg_replace or manually. When using preg_replace, you can control only the first match by setting the fourth parameter to 1. If you replace a normal string, you need to escape with preg_quote; for example, preg_replace('/apple/', 'orange', $string, 1). If you do not use regular expressions, you can manually find the location where the target string first appears, split the string and replace it and splice it. As shown in the function replace_first, use strpos to locate and substr_replace to replace the specified part. Notes include: Use preg_quote to escape when containing special characters. strtr is not suitable for substitution of whole-segment strings. The performance of the two methods is similar, and the choice depends on whether regular functions are required.
Replacing the first match of a string in PHP is not as straightforward as using str_replace
, because str_replace
will replace all content that appears by default. If you just want to replace the first substring that appears, you need to make a little turn.

Here is a simple and effective method:
Use preg_replace
to control the number of replacements
PHP's preg_replace
function has a parameter that can control how many replacements can be controlled at most, which is the key to implementing "replace only the first one".

$result = preg_replace('/find content/', 'replaced with content', $subject, 1);
- The first parameter is a regular expression. Note that if you just replace a normal string (no special symbols), you need to use
preg_quote()
to escape. - The last parameter
1
means that the replacement is at most once, that is, only the first match is replaced.
For example:
$string = "apple banana apple cherry"; $result = preg_replace('/apple/', 'orange', $string, 1); echo $result; // Output: orange banana apple cherry
This only replaces the first "apple".

What if you don't use regularity?
If you don't want to use regular expressions, you can also manually operate the string, and complete it by finding positions and truncating splicing.
The steps are as follows:
- Find the first occurrence of the string to be replaced
- Divide the original string into two parts: the front part and the rear part
- Replace the target string in the first half and then spell the second half.
Code example:
function replace_first($search, $replace, $subject) { $pos = strpos($subject, $search); if ($pos === false) return $subject; return substr_replace($subject, $replace, $pos, strlen($search)); }
This method is suitable for scenarios where no regularity is required and is also very efficient.
Notes and FAQs
- If you are sure that
$search
contains regular special characters, such as.
,*
,?
, etc., remember to escape withpreg_quote($search, '/')
. -
str_replace
cannot limit the number of replacements, butstrtr
can do single-character replacement and does not apply to the entire string. - In terms of performance, both methods are similar, depending on whether you need regular functions.
Basically that's it. Using preg_replace
is the simplest way, while manual processing is more flexible, depending on your specific needs.
The above is the detailed content of How to replace only the first occurrence of a string in PHP. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The method to get the current session ID in PHP is to use the session_id() function, but you must call session_start() to successfully obtain it. 1. Call session_start() to start the session; 2. Use session_id() to read the session ID and output a string similar to abc123def456ghi789; 3. If the return is empty, check whether session_start() is missing, whether the user accesses for the first time, or whether the session is destroyed; 4. The session ID can be used for logging, security verification and cross-request communication, but security needs to be paid attention to. Make sure that the session is correctly enabled and the ID can be obtained successfully.

To extract substrings from PHP strings, you can use the substr() function, which is syntax substr(string$string,int$start,?int$length=null), and if the length is not specified, it will be intercepted to the end; when processing multi-byte characters such as Chinese, you should use the mb_substr() function to avoid garbled code; if you need to intercept the string according to a specific separator, you can use exploit() or combine strpos() and substr() to implement it, such as extracting file name extensions or domain names.

UnittestinginPHPinvolvesverifyingindividualcodeunitslikefunctionsormethodstocatchbugsearlyandensurereliablerefactoring.1)SetupPHPUnitviaComposer,createatestdirectory,andconfigureautoloadandphpunit.xml.2)Writetestcasesfollowingthearrange-act-assertpat

In PHP, the most common method is to split the string into an array using the exploit() function. This function divides the string into multiple parts through the specified delimiter and returns an array. The syntax is exploit(separator, string, limit), where separator is the separator, string is the original string, and limit is an optional parameter to control the maximum number of segments. For example $str="apple,banana,orange";$arr=explode(",",$str); The result is ["apple","bana

JavaScript data types are divided into primitive types and reference types. Primitive types include string, number, boolean, null, undefined, and symbol. The values are immutable and copies are copied when assigning values, so they do not affect each other; reference types such as objects, arrays and functions store memory addresses, and variables pointing to the same object will affect each other. Typeof and instanceof can be used to determine types, but pay attention to the historical issues of typeofnull. Understanding these two types of differences can help write more stable and reliable code.

std::chrono is used in C to process time, including obtaining the current time, measuring execution time, operation time point and duration, and formatting analysis time. 1. Use std::chrono::system_clock::now() to obtain the current time, which can be converted into a readable string, but the system clock may not be monotonous; 2. Use std::chrono::steady_clock to measure the execution time to ensure monotony, and convert it into milliseconds, seconds and other units through duration_cast; 3. Time point (time_point) and duration (duration) can be interoperable, but attention should be paid to unit compatibility and clock epoch (epoch)

In PHP, to pass a session variable to another page, the key is to start the session correctly and use the same $_SESSION key name. 1. Before using session variables for each page, it must be called session_start() and placed in the front of the script; 2. Set session variables such as $_SESSION['username']='JohnDoe' on the first page; 3. After calling session_start() on another page, access the variables through the same key name; 4. Make sure that session_start() is called on each page, avoid outputting content in advance, and check that the session storage path on the server is writable; 5. Use ses

ToaccessenvironmentvariablesinPHP,usegetenv()orthe$_ENVsuperglobal.1.getenv('VAR_NAME')retrievesaspecificvariable.2.$_ENV['VAR_NAME']accessesvariablesifvariables_orderinphp.iniincludes"E".SetvariablesviaCLIwithVAR=valuephpscript.php,inApach
