Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Проблема с "/"

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Intrerio
Отправлено: 21 Августа, 2015 - 12:27:18
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




Здраствуйте. Проблема вот в чем:
Есть в базе данных запись типа МВ/НВ. Есть форма которая методом POST передает данную запись,а последующий код проверяет есть ли в БД строчка с этой записью. В следствии проверка проваливаеться потому что я получаю вместо МВ/НВ только НВ. Пробую preg_match("/([a-zA-Zа-яА-ЯіІ]*)([\-0]*)([\-0-9]+)+/u ", "$_POST[start]", $start); но получаю все то же. Кстати код preg_match("/([a-zA-Zа-яА-ЯіІ]*)([\-0]*)([\-0-9]+)+/u ", "$_POST[start]", $start); я использую для других целей и не могу понять что нужно в него добавить чтоб заработало
 
 Top
andrewkard
Отправлено: 21 Августа, 2015 - 12:32:05
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Intrerio
Что приходит в $_POST[start]?
 
 Top
Intrerio
Отправлено: 21 Августа, 2015 - 12:35:27
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




andrewkard пишет:
Intrerio
Что приходит в $_POST[start]?

В $_POST[start] приходит МВ/НВ1 . Сейчас попробую Ваш совет
(Добавление)
Сделал вот так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $test=var_dump($_POST['start']);
  3. preg_match("/([a-zA-Zа-яА-ЯіІ]*)([\-0]*)([\-0-9]+)+/u ", "$test", $start);
  4.  

При ввыводе
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. echo"1) $start[0] 2) $start[1] 3)$start[2] 4)$start[3] 5)$start[4] 6) $test";
  3.  

Вижу:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. string(10) "МВ/НВ1" 1) 2) 3) 4) 5) 6) МВ\/НВ1
  3.  

Тоесть preg_match не разбивает на части строку
(Добавление)
Затупил.
Когда пробую вывести $test[0] вижу знак вопроса в ромбе. Что то с кодировкой. Как исправить?
(Добавление)
я завис...
С кодировкой была проблема не через вар дамп.
При выводе получил string(10) "МВ/НВ1" . Как разбить на части эту строку?
 
 Top
Мелкий Супермодератор
Отправлено: 21 Августа, 2015 - 12:57:16
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Intrerio пишет:
Когда пробую вывести $test[0] вижу знак вопроса в ромбе. Что то с кодировкой. Как исправить?

Не использовать обращение к строке как к массиву. Это побайтовая операция применима к многобайтовому utf только в том случае, если вы знаете, что и зачем делаете.
mb_substr и прочие mb_


-----
PostgreSQL DBA
 
 Top
Intrerio
Отправлено: 21 Августа, 2015 - 12:59:36
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Авг. 2015  


Помог: 0 раз(а)




Возможно я сейчас обнаглел но прошу упростить задачу)). Просто напишите что и как поменять чтоб я смог просто разбить строку на части
 
 Top
andrewkard
Отправлено: 21 Августа, 2015 - 13:31:11
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


Помог: 30 раз(а)




Intrerio пишет:
что я получаю вместо МВ/НВ только НВ.

приходит МВ/НВ1
т.е. Вам нужно из строки МВ/НВ1 сделать МВ/НВ ?

PHP:
скопировать код в буфер обмена
  1.  
  2. preg_match("/\W{2}\/\W{2}/", $test, $start);
  3. echo $start[0];
  4.  
 
 Top
Мелкий Супермодератор
Отправлено: 21 Августа, 2015 - 13:31:24
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Напишите тогда, для чего это нужно.
Чтобы узнать, если ли в базе в определённой таблице в определённом поле строка, эквивалентная переданной - для этого в эту строку лезть не надо вообще. Отправляете запрос и смотрите, есть ли результат.
Разбить на части - возможно, вам нужен банальный explode.
Если провалидировать формат строки - то тут уже уместна регулярка. Раскидать валидируемый кусок на части при этом, обычно, тоже возможно. Но у вас регулярка несколько странная, для валидации она не годится от слова совсем.

В общем, я пока не понял, что вы хотите сделать.


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB