Это будет звучать очень просто, но я не могу понять, почему это не работает.
Я проверяю, что строка соответствует чему-то, чтобы можно было отправлять некоторые тексты.
Возвращаемая строка: Delivered to UPS Access Point™ location and awaiting customer pickup..
И это утверждение, которое я использую, чтобы проверить это.
if (strpos(strtolower($step->status), "delivered to ups access point")) {
}
В настоящее время оператор if возвращает false, хотя я ожидал, что это будет правда.
Любые идеи






Вы обрабатываете strpos как логическое значение, а это не так. Он возвращает позицию строки, которая будет равна 0, и преобразуется в false.
Так что сравните с not false (not found) или> = 0 (found), тип важен.
Пример:
$data = "Delivered to UPS Access Point™ location and awaiting customer pickup.";
if (strpos(strtolower($data), "delivered to ups access point") !== false) {
echo 'Found!';
}
У всех бывают такие моменты;)
strpos возвращает false, если не найден, но не -1.
Это должно работать
$step->status = "Delivered to UPS Access Point™ location and awaiting customer pickup.";
if (strpos(strtolower($step->status), "delivered to ups access point") !== false) {
echo "String matches";
}
else {
echo "String not matches";
}
strpos - это индекс возврата вашего второго аргумента. В вашем случае «доставлено в точку доступа ИБП» - это начальная точка, означающая 0-ю позицию. 0 означает ложь.
Отличное спасибо, совсем забыл, что это так возвращается