ФорумПрограммированиеPHP для идиотов → Как сделать строгое соответствие?

Как сделать строгое соответствие?

  • Roller

    Сообщения: 143 Репутация: N Группа: Кто попало

    Spritz 15 августа 2009 г. 15:01


    имеется переменная
    как при помощи регулярных выражений сделать так,

    $str = 'http://site.ru/category/';

    чтобы шаблон был равен true., либо = 0

    а если переменная будет иметь вид
    $str = 'http://site.ru/category/page.html';

    результат был равен false, либо = 1

    мля не могу сформулировать :(
    короче мне нужен переключатель, который смог бы определять что сейчас нужно обрабатывать
    главную страницу или каталоги или статьи показывать либо же навигацию.

    З.Ы. возможно вообще, это делается не регулярками.
    в .htaccess прописано следующее.
    <IfModule mod_rewrite.c>
    AddDefaultCharset utf-8
    RewriteEngine On
    RewriteBase /
    Options -Indexes
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    </IfModule>
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 августа 2009 г. 15:01, спустя 41 секунду

    сочусвтую
    Сапожник без сапог
  • Cos

    Сообщения: 41 Репутация: N Группа: Кто попало

    Spritz 15 августа 2009 г. 15:05, спустя 3 минуты 23 секунды

    как вариант проверять последний символ строки, и возвращать true, если там слэш
  • Roller

    Сообщения: 143 Репутация: N Группа: Кто попало

    Spritz 15 августа 2009 г. 15:06, спустя 1 минуту 35 секунд


    сочусвтую


    хоть кто-то сочувствует)))

    if(preg_match("/http:\/\/.*?\/(.*?)\//isU", $in, $out)==1){}

    я пытался так, вроде все находит и ок. но когда вводишь что-то типа токого '_http://site/category/abrakadabra/'  то все равно пишет что соответствие найдено , а мне надо чтобы выдавал, что не найдено.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 15 августа 2009 г. 15:13, спустя 6 минут 39 секунд

    if(preg_match("/^http:\/\/.*?\/(.*?)\//isU", $in, $out)==1){}
    Сапожник без сапог
  • Roller

    Сообщения: 143 Репутация: N Группа: Кто попало

    Spritz 15 августа 2009 г. 15:20, спустя 6 минут 38 секунд


    if(preg_match("/^http:\/\/.*?\/(.*?)\//isU", $in, $out)==1){}


    хмм, все равно по запросу 'http://site/category/abrakadabra/' = соответствие найдено оО

    З.Ы. это была подьебка? )
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 15 августа 2009 г. 23:03, спустя 7 часов 43 минуты 19 секунд

    ты прсто делаешь роутер??

  • Roller

    Сообщения: 143 Репутация: N Группа: Кто попало

    Spritz 16 августа 2009 г. 3:57, спустя 4 часа 54 минуты 31 секунду

    все добил я этого змея))

    вот решение. только наверно говнокод, но свою функцию выполняет.

    $in="http://site.com/category/";
    preg_match("/(http:\/\/.*?\/(.*?)\/)/isU", $in, $out);
    if($in==$out[1]){print "совпадает";}else{print "не совпадает";}

    результат будет: совпадает

    $in="http://site.com/category/abrakadabra/";
    preg_match("/(http:\/\/.*?\/(.*?)\/)/isU", $in, $out);
    if($in==$out[1]){print "совпадает";}else{print "не совпадает";}

    результат будет: не совпадает
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 16 августа 2009 г. 5:40, спустя 1 час 42 минуты 41 секунду

    Roller, а нахуя тут ваще регулярки?
    обрезай строку до 4 слеша и смотри если чтото осталось то нахуй с пляжу
  • Roller

    Сообщения: 143 Репутация: N Группа: Кто попало

    Spritz 16 августа 2009 г. 5:58, спустя 17 минут 57 секунд


    Roller, а нахуя тут ваще регулярки?
    обрезай строку до 4 слеша и смотри если чтото осталось то нахуй с пляжу



    регулярки нужны для того чтобы вытаскивать категории- они же будут меняться.
    а мне надо знать, какая категория и куда направить юзера.

    а если будет не совпадение - то будет выводится 404 ошибка
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 16 августа 2009 г. 7:25, спустя 1 час 26 минут 43 секунды

    юзай explode
  • Fujin

    Сообщения: 23 Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 10:19, спустя 1098 дней 2 часа 53 минуты

    А что ты думаешь об остальных посетителях канала?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!