Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

02.02.2010, 17:34
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от dimash
Доброго,
Помогите вспомнить основы.
Регулярные выражения я разберу, есть откуда почитать. Суть в другом, в самом принципе работы.
Например, когда мы преобразовываем ссылку
Код HTML:
www.yoursite.com/script.php?product=123
к виду
Код HTML:
www.yoursite.com/cat/product/123/
мы используем выражение
PHP код:
RewriteRule cat/(.*)/(.*)/$ /script.php?$1=$2
Правильно ли понимаю, что изначально мы смотрим и пишем /script.php?$1=$2, то есть вторую часть, изначальную свою ссылку. Затем мы прописываем первую часть cat/(.*)/(.*)/$ и каждая переменная (в нашем случае $1, $2) (последовательно, слева направо?) идет прописываться в каждую круглую скобку? Вот, и какую роль тогда здесь играют регулярные выражения?
Это регулярное выражение говорит нам,что если, было обращение к например:
Код:
http://site.com/cat/33/4234/
Аппач автоматически внутри системы сделает перенаправление этого запроса в:
Код:
http://site.com//script.php?33=4234
То есть, говорят простыми словами,в первом выражении указываеться маска для запроса,какие запросы обрабатывать, вторым параметром являеться "куда пренаправлять",и там используются уже привычные в regEXP цифровые-переменные.Переменные идут в порядке слева на право.Как пример:
PHP код:
RewriteRule cat/(.*)/(.*)/param/([0-9]+)/$ /cat.php?$1=$2¶ms=$3
Делаем обращение к скрипту:
Код:
htto://site.com/cat/A1/B1/param/777/
Мы увидим тоже самое,что и при запросе:
Код:
htto://site.com/cat.php?A1=B1¶ms=777
Все просто.
|
|
|

02.02.2010, 23:52
|
|
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме: 41875
Репутация:
4
|
|
Сообщение от m0Hze
Это регулярное выражение говорит нам,что если, было обращение к например:
Код:
http://site.com/cat/33/4234/
Аппач автоматически внутри системы сделает перенаправление этого запроса в:
Код:
http://site.com//script.php?33=4234
То есть, говорят простыми словами,в первом выражении указываеться маска для запроса,какие запросы обрабатывать, вторым параметром являеться "куда пренаправлять",и там используются уже привычные в regEXP цифровые-переменные.Переменные идут в порядке слева на право.Как пример:
PHP код:
RewriteRule cat/(.*)/(.*)/param/([0-9]+)/$ /cat.php?$1=$2¶ms=$3
Делаем обращение к скрипту:
Код:
htto://site.com/cat/A1/B1/param/777/
Мы увидим тоже самое,что и при запросе:
Код:
htto://site.com/cat.php?A1=B1¶ms=777
Все просто.
Благодарю за ответ. Странно вообще-то получается. Я хочу site.com/cat.php?A1=B1¶ms=777 с помощью RewriteRule переименовать в site.com/catalog/firma/obelisk/index.html (просто как пример), а вы говорите что RewriteRule делает абсолютно противоположную задачу. Верно? Как достигнуть моей цели?
|
|
|

03.02.2010, 00:14
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от dimash
Благодарю за ответ. Странно вообще-то получается. Я хочу site.com/cat.php?A1=B1¶ms=777 с помощью RewriteRule переименовать в site.com/catalog/firma/obelisk/index.html (просто как пример), а вы говорите что RewriteRule делает абсолютно противоположную задачу. Верно? Как достигнуть моей цели?
Вы ничего не поняли
Гугле->Регулярные выражения PHP
|
|
|

03.02.2010, 19:48
|
|
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме: 41875
Репутация:
4
|
|
Сообщение от m0Hze
Вы ничего не поняли
Гугле->Регулярные выражения PHP
Я понял задом-наперед. Хорошо.
Как мне можно добиться такого результата
Сейчас ссылка index.php?action=company&lang=ru
Мне надо /ru/company.html
|
|
|

03.02.2010, 20:00
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от dimash
Я понял задом-наперед. Хорошо.
Как мне можно добиться такого результата
Сейчас ссылка index.php?action=company&lang=ru
Мне надо /ru/company.html
PHP код:
^([a-zA-Z]+)/(.*)\.html index.php?action=$2&lang=$1
|
|
|

03.02.2010, 20:08
|
|
Познающий
Регистрация: 14.04.2008
Сообщений: 78
Провел на форуме: 41875
Репутация:
4
|
|
Сообщение от m0Hze
PHP код:
^([a-zA-Z]+)/(.*)\.html index.php?action=$2&lang=$1
[a-zA-Z]+ можно [a-Z]+
А почему первое выражение было [a-zA-Z], а второе (.*)
|
|
|

03.02.2010, 20:09
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме: 4778940
Репутация:
1257
|
|
У меня есть куча select'ов:
Код HTML:
<select id='w1'>
option value='1' >1</option>
option value='2' >2</option>
option value='3' >3</option>
</select>
<select id='w2'>
option value='1' >1</option>
option value='2' >2</option>
option value='3' >3</option>
</select>
<select id='w3'>
option value='1' >1</option>
option value='2' >2</option>
option value='3' >3</option>
</select>
Мне нужно получить все option у select'a с id=w2. Это можно сделать одной регуляркой?
|
|
|

04.02.2010, 14:10
|
|
Постоянный
Регистрация: 16.04.2008
Сообщений: 889
Провел на форуме: 12942062
Репутация:
1550
|
|
Как сделать редирект с любго поддомена на страницы сайта?
к примеру, с 1234.site.ru нa site.ru/1234
при этом поддомены в панельке создавать по условию нельзя и поддомен может быть любым
|
|
|

04.02.2010, 16:14
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от mr.The
У меня есть куча select'ов:
Код HTML:
<select id='w1'>
option value='1' >1</option>
option value='2' >2</option>
option value='3' >3</option>
</select>
<select id='w2'>
option value='1' >1</option>
option value='2' >2</option>
option value='3' >3</option>
</select>
<select id='w3'>
option value='1' >1</option>
option value='2' >2</option>
option value='3' >3</option>
</select>
Мне нужно получить все option у select'a с id=w2. Это можно сделать одной регуляркой?
PHP код:
$text = "
<select id='w2'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
</select>";
preg_match("#id='w2'>(.*)<\/select>#s", $text, $match);
echo strip_tags($match[1]);
|
|
|

04.02.2010, 16:15
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
Сообщение от wildshaman
Как сделать редирект с любго поддомена на страницы сайта?
к примеру, с 1234.site.ru нa site.ru/1234
при этом поддомены в панельке создавать по условию нельзя и поддомен может быть любым
В панеле включить "автоподдомены" а будет автоматом делаться именно так.
Или аппаче_хост рулить.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|