We use string search functions to find if a smaller piece of text exists inside a bigger text. This helps us locate words or parts of words easily.
String search functions (strpos, strstr) in PHP
strpos(string $haystack, string $needle, int $offset = 0): int|false strstr(string $haystack, string $needle, bool $before_needle = false): string|false
strpos returns the position (number) where the search text starts, or false if not found.
strstr returns the part of the string from the found text to the end, or false if not found.
$pos = strpos('hello world', 'world'); echo $pos;
$part = strstr('hello@example.com', '@'); echo $part;
$pos = strpos('hello world', 'x'); var_dump($pos);
$part = strstr('hello@example.com', '@', true); echo $part;
This program searches for 'PHP' in a sentence. It shows the position where 'PHP' starts, the part of the sentence from 'PHP' to the end, and the part before 'PHP'.
<?php $text = "I love PHP programming."; $search = "PHP"; $position = strpos($text, $search); if ($position !== false) { echo "Found '$search' at position: $position\n"; } else { echo "'$search' not found.\n"; } $part = strstr($text, $search); echo "Part of string from '$search': $part\n"; $before = strstr($text, $search, true); echo "Part of string before '$search': $before\n";
Remember, strpos returns 0 if the search text is at the very start. Use strict comparison (===) to check for false.
strstr can return false if the text is not found, so always check before using the result.
strpos finds the position of a text inside another text.
strstr extracts part of the text starting from or before the found text.
Use these functions to check and work with parts of strings easily.
Practice
strpos do?Solution
Step 1: Understand the purpose of strpos
Thestrposfunction searches for the first occurrence of a substring inside another string and returns its position.Step 2: Compare with other options
Options A, B, and C describe different string functions likestrtoupper,strstr, andstr_replace, which are not whatstrposdoes.Final Answer:
Finds the position of a substring inside a string -> Option CQuick Check:
strpos = position finder [OK]
- Confusing strpos with strstr
- Thinking strpos extracts substring
- Assuming strpos replaces text
$text = 'concatenate' using strpos?Solution
Step 1: Identify correct parameter order for strpos
The first parameter is the full string, the second is the substring to find. Sostrpos($text, 'cat')is correct.Step 2: Check other options for errors
strpos('concatenate', 'cat') uses a string literal instead of the variable. strpos('cat', $text) reverses parameters. strpos($text) misses the second parameter.Final Answer:
strpos($text, 'cat') -> Option DQuick Check:
strpos(string, substring) [OK]
- Swapping the order of parameters
- Omitting the substring argument
- Passing substring as first argument
$text = 'hello world';
$pos = strpos($text, 'world');
echo $pos;
Solution
Step 1: Find the position of 'world' in 'hello world'
The string 'hello world' has 'world' starting at index 6 (counting from 0).Step 2: Understand what strpos returns
strpos returns the starting position of the substring, so it returns 6.Final Answer:
6 -> Option AQuick Check:
Position of 'world' in 'hello world' = 6 [OK]
- Counting from 1 instead of 0
- Confusing position with length
- Expecting boolean true instead of position
$fruit. What is the error?$fruit = 'pineapple';
if (strpos($fruit, 'apple')) {
echo 'Found';
} else {
echo 'Not found';
}
Solution
Step 1: Understand strpos return values
strpos returns 0 if the substring is found at the start (index 0). In PHP, 0 is treated as false in conditions.Step 2: Analyze the if condition behavior
The conditionif (strpos(...))fails when strpos returns 0, so it wrongly goes to else.Final Answer:
strpos returns 0 for 'apple' position, which is treated as false -> Option BQuick Check:
Check strpos !== false to avoid 0 as false [OK]
- Using if(strpos()) without strict false check
- Assuming strpos returns boolean true/false only
- Ignoring 0 as valid position
$sentence = 'The quick brown fox jumps', which code snippet correctly extracts the substring starting from the word 'brown' using strstr?Solution
Step 1: Understand strstr behavior
strstr returns the part of the string starting from the first occurrence of the substring, including it.Step 2: Analyze options
echo strstr($sentence, 'brown'); correctly uses strstr to get substring from 'brown'. echo strstr($sentence, 'brown', true); returns part before 'brown'. echo strpos($sentence, 'brown'); returns position, not substring. echo substr($sentence, strpos($sentence, 'brown')); uses substr with strpos, which also works but is not strstr.Final Answer:
echo strstr($sentence, 'brown'); -> Option AQuick Check:
strstr returns substring from needle [OK]
- Using third parameter true to get substring after needle
- Confusing strpos with strstr
- Expecting strpos to return substring
Ready to prove it?
Pass the test and this pattern moves unknown
