Перейти к содержимому


Проверка строкового значения на наличие символа


Сообщений в теме: 7

#1 zyryanov1970

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 06 Июль 2015 - 10:17

Добрый день.

Прошу прощения, если вопрос слишком простой, но самостоятельный поиск в интернете и пробные вычисления выдают ошибки.
Есть текстовое значение в поле, которое мне необходимо проверить на наличие в нем символа круглой скобки ")". В зависимости от результата сделать одно или другое вычисление поля.
Каким оператором это корректнее сделать?

if ($line['Строковое Поле'] содержит ")")
//здесь считаем, если текст содержит ")"
$line['Вычисляемое Поле'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Вычисляемое Поле'] = ...;

Как вариант, можно делать проверку на то, что последний символ Строкового Поля ")"
Заранее признателен за помощь.

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 06 Июль 2015 - 11:04

http://php.net/manua...tion.strpos.php

#3 zyryanov1970

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 06 Июль 2015 - 13:11

Спасибо. Почитал, но, как и до этого, не смог применить.

Как корректно сделать?
if (strpos($line['Строка'],')')=')')

//здесь считаем, если текст содержит ")"

$line['Число'] = ...;

else

//здесь считаем, если текст НЕ содержит ")"

$line['Число'] = ...;


или



if (strpos($line['Строка'],')')=true)
//здесь считаем, если текст содержит ")"
$line['Число'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Число'] = ...;


#4 zyryanov1970

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 06 Июль 2015 - 13:16

Полагаю, что корректно использовать было "==="?

#5 zyryanov1970

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 06 Июль 2015 - 14:11

if (strpos($line['Строка'],')')===')')
//здесь считаем, если текст содержит ")"
$line['Число'] = ...;
else
//здесь считаем, если текст НЕ содержит ")"
$line['Число'] = ...;

Так должно быть? Перестали вылезать ошибки, но и расчета не происходит

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 06 Июль 2015 - 14:19

if (strpos($line['Строка'],')')!==false)

Т.е, проверяем, что результат поиска НЕ (!==) отрицательный (false), который функция вернет, если ничего не найдено. Если же найдено - она вернет позицию символа (от 0 и далее), но никак не сам символ, как у вас в последнем и первом примерах.

#7 zyryanov1970

    Участник

  • Пользователи
  • PipPip
  • 14 сообщений

Отправлено 06 Июль 2015 - 14:19

В итоге путем перебора выяснилось, что задача решается функцией strstr
Все равно спасибо ))

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 06 Июль 2015 - 14:24

Я же написал выше правильный вариант. Для вашей задачи что strpos, что strstr - это одно и тоже, т.к. важен не сам результат, а его наличие. Но strpos будет "каноничнее".





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных