Добрый день.
Прошу прощения, если вопрос слишком простой, но самостоятельный поиск в интернете и пробные вычисления выдают ошибки.
Есть текстовое значение в поле, которое мне необходимо проверить на наличие в нем символа круглой скобки ")". В зависимости от результата сделать одно или другое вычисление поля.
Каким оператором это корректнее сделать?
if ($line['Строковое Поле'] содержит ")")
//здесь считаем, если текст содержит ")"
$line['Вычисляемое Поле'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Вычисляемое Поле'] = ...;
Как вариант, можно делать проверку на то, что последний символ Строкового Поля ")"
Заранее признателен за помощь.


Проверка строкового значения на наличие символа
Автор zyryanov1970, 06 июля 2015 10:17
Сообщений в теме: 7
#1
Отправлено 06 Июль 2015 - 10:17
#3
Отправлено 06 Июль 2015 - 13:11
Спасибо. Почитал, но, как и до этого, не смог применить.
Как корректно сделать?
if (strpos($line['Строка'],')')=')')
//здесь считаем, если текст содержит ")"
$line['Число'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Число'] = ...;
или
if (strpos($line['Строка'],')')=true)
//здесь считаем, если текст содержит ")"
$line['Число'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Число'] = ...;
Как корректно сделать?
if (strpos($line['Строка'],')')=')')
//здесь считаем, если текст содержит ")"
$line['Число'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Число'] = ...;
или
if (strpos($line['Строка'],')')=true)
//здесь считаем, если текст содержит ")"
$line['Число'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Число'] = ...;
#4
Отправлено 06 Июль 2015 - 13:16
Полагаю, что корректно использовать было "==="?
#5
Отправлено 06 Июль 2015 - 14:11
if (strpos($line['Строка'],')')===')')
//здесь считаем, если текст содержит ")"
$line['Число'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Число'] = ...;
Так должно быть? Перестали вылезать ошибки, но и расчета не происходит
//здесь считаем, если текст содержит ")"
$line['Число'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Число'] = ...;
Так должно быть? Перестали вылезать ошибки, но и расчета не происходит
#6
Отправлено 06 Июль 2015 - 14:19
if (strpos($line['Строка'],')')!==false)
Т.е, проверяем, что результат поиска НЕ (!==) отрицательный (false), который функция вернет, если ничего не найдено. Если же найдено - она вернет позицию символа (от 0 и далее), но никак не сам символ, как у вас в последнем и первом примерах.
#7
Отправлено 06 Июль 2015 - 14:19
В итоге путем перебора выяснилось, что задача решается функцией strstr
Все равно спасибо ))
Все равно спасибо ))
#8
Отправлено 06 Июль 2015 - 14:24
Я же написал выше правильный вариант. Для вашей задачи что strpos, что strstr - это одно и тоже, т.к. важен не сам результат, а его наличие. Но strpos будет "каноничнее".
Количество пользователей, читающих эту тему: 4
0 пользователей, 4 гостей, 0 анонимных