I need to parse an HTML document and to find all occurrences of string asdf in it.
I currently have the HTML loaded into a string variable. I would just like the character position so I can loop through the list to return some data after the string.
The strpos function only returns the first occurrence. How about returning all of them?
strpos in PHP is a built-in function. Its use is to find the first occurrence of a substring in a string or a string inside another string. The function returns an integer value which is the index of the first occurrence of the string.
Answer: Use the PHP strpos() Function You can use the PHP strpos() function to check whether a string contains a specific word or not. The strpos() function returns the position of the first occurrence of a substring in a string. If the substring is not found it returns false .
The strpos() function finds the position of the first occurrence of a string inside another string. Note: The strpos() function is case-sensitive.
Without using regex, something like this should work for returning the string positions:
$html = "dddasdfdddasdffff"; $needle = "asdf"; $lastPos = 0; $positions = array();  while (($lastPos = strpos($html, $needle, $lastPos))!== false) {     $positions[] = $lastPos;     $lastPos = $lastPos + strlen($needle); }  // Displays 3 and 10 foreach ($positions as $value) {     echo $value ."<br />"; } 
                        You can call the strpos function repeatedly until a match is not found. You must specify the offset parameter.
Note: in the following example, the search continues from the next character instead of from the end of previous match. According to this function, aaaa contains three occurrences of the substring aa, not two.
function strpos_all($haystack, $needle) {     $offset = 0;     $allpos = array();     while (($pos = strpos($haystack, $needle, $offset)) !== FALSE) {         $offset   = $pos + 1;         $allpos[] = $pos;     }     return $allpos; } print_r(strpos_all("aaa bbb aaa bbb aaa bbb", "aa"));   Output:
Array (     [0] => 0     [1] => 1     [2] => 8     [3] => 9     [4] => 16     [5] => 17 ) 
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With