Есть две проблем здесь - первый в вашем побеге строки, а второй находится в вашей логике на основе возвращения из функции strpos
.
Первая проблема заключается в том, что вам не нужно избегать ввода поиска в strpos
- это не функция регулярных выражений!
Вторая проблема заключается в том, что ваша (неэкранированная) строка поиска будет соответствовать нулевой позиции, которую PHP также интерпретирует как ложное значение.
РНР strpos docs here состояние:
Предупреждение Эта функция может возвращать как логическое значение FALSE, но может также возвращать не-логическое значение, которое приводится к FALSE. Пожалуйста, прочитайте раздел о Booleans для получения дополнительной информации. Используйте оператор === для проверки возвращаемого значения этой функции.
Используйте этот код вместо который должен работать нормально:
$text = "example\'s";
$text = " ".$text." ";
if (strpos($text, " example\'s ") === false) {
echo "false.";
} else {
echo "true.";
}
Оператор ===
является ключевым здесь - это означает равное значение и тип, поэтому он предотвращает интерпретатор PHP от лечения ноля как равные к false, что и в противном случае.
знакомства PHP операторов сравнения ссылка: http://php.net/manual/en/language.operators.comparison.php
Edit: Дополнительная информация о значениях PHP считает ложными: -
При преобразовании в булево, следующие значения считаются FALSE:
само логическое значение FALSE
целое число 0 (ноль)
поплавок 0,0 (ноль)
пустая строка, а строка "0"
(только PHP 4) массив с нулевыми элементами
объект с нулевыми переменными-членами
специальный тип NULL (включая неустановленные переменные)
SimpleXML объектов, созданных из пустых тегов
Каждое другое значение считается ИСТИННЫМ (включая любой ресурс).
Предупреждение: -1 считается ИСТИННЫМ, как и любое другое ненулевое (отрицательное или положительное) число!
От: http://php.net/manual/en/language.types.boolean.php
Он по-прежнему вторя ложь. – jessica
Nevermind. Вы редактируете лишние косые черты. – jessica
Я только что обновил свой ответ - вам не нужно вообще избегать строки для 'strpos'. Можете ли вы попробовать еще раз? – beercohol