Error : Warning: strpos() [function.strpos]: Offset not contained in string - can not find solution

前端 未结 3 1349
不知归路
不知归路 2020-12-21 00:19

I know, this question has been asked, but unfortunately, there are no answers how to solve this problem.

This appears in my logfiles:

PHP message: PH

相关标签:
3条回答
  • 2020-12-21 00:28

    To answer your second question - you have two issues in your code. Assuming your text string is:

    $text = 'hotmail test test test test';
    

    ..and your if statement is

    if (strposab($text, $spam, 1))
    

    First, you're starting at offset 1, while the word "hotmail" is at position 0. So by specifying an offset of 1, you're checking against the String:

    otmail test test test test
    

    ...and not

    hotmail test test test test
    

    Second of all, with "hotmail" being at position 0, your strposab() function will return a value of int(0), which is a non-Boolean value that when used in a Boolean expression evaluates to FALSE. Therefore, you need to use the !== operator in order to avoid type juggling. So the correct if statement to use will be:

    if (strposab($text, $spam, 0) !== false)
    
    0 讨论(0)
  • 2020-12-21 00:36

    To the first question:

    Most likely at one point you're passing an empty string to your function. Offset in the strpos call indicates from which character it should start searching for $needle. It's 0-based, so if you want to start from the absolute beginning, you either set it to 0 or omit it (it defaults to 0.)

    To the second question:

    As mentioned before, the offset is 0-based, so if $needle you're searching for is exactly in the beginning of $haystack, it cannot be found if $offset is 1. With $offset = 1 it would be as if you're searching in a string that looks like this: 'otmail test test test test'.

    One more thing:

    I suggest you should use stripos, not strpos for your purposes, as it is case-insensitive and will also find words with uppercase letters, if it's something you might need.

    0 讨论(0)
  • 2020-12-21 00:46

    The offset value is higher than the length of the string to search in.

    0 讨论(0)
提交回复
热议问题