ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

12.01.2009, 22:24
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
PREG_SET_ORDER
PREG_OFFSET_CAPTURE
http://ru2.php.net/manual/ru/function.preg-match-all.php
|
|
|

12.01.2009, 22:34
|
|
Новичок
Регистрация: 03.09.2008
Сообщений: 13
Провел на форуме: 12708
Репутация:
8
|
|
w.u.n., огромное спасибо!!!! то что нужно)))
Pashkela, если ты не понял то не надо ничего писать...
|
|
|

12.01.2009, 22:36
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Сообщение от Malunga
w.u.n., огромное спасибо!!!! то что нужно)))
Pashkela, если ты не понял то не надо ничего писать...
ты дурак? Посмотри на код, что тебе дали
ЗЫЖ Расплодили даунов
Смотри на мою мессагу и смотри на предложенный код, попробуй найти совпадения
|
|
|

12.01.2009, 22:46
|
|
Новичок
Регистрация: 03.09.2008
Сообщений: 13
Провел на форуме: 12708
Репутация:
8
|
|
Сообщение от Pashkela
ты дурак? Посмотри на код, что тебе дали
ЗЫЖ Расплодили даунов
Смотри на мою мессагу и смотри на предложенный код, попробуй найти совпадения
Ты полегче с выражениями, не надо корчить из себя крутого.
То что ты дал это флаги управления форматом вывода, и это никак не относится к моему вопросу.
Я больше не собираюсь с тобой проводить какие-то перепалки, тема не для этого.
|
|
|

12.01.2009, 22:49
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
ты реально туп, приятель, еще бы мне тратить время на даунов всяческих
Для обезьян:
PREG_SET_ORDER
PREG_OFFSET_CAPTURE
http://ru2.php.net/manual/ru/function.preg-match-all.php
while(preg_match('/<a.*?>(.*?)<\/a>/',$text,$m,PREG_OFFSET_CAPTURE,$p)) {
отдыхайте, молодой человек, нежно посасывая в уголке.
ЗЫЖ Думай, потом пиши, дурачок 
|
|
|

12.01.2009, 22:56
|
|
Новичок
Регистрация: 03.09.2008
Сообщений: 13
Провел на форуме: 12708
Репутация:
8
|
|
Ты в своём уме вообще?
Одним флагом тут ничего не решается, так что ты снчала подумай, а потом печатай.
А то складывается дурное впечатление о твоём профессионализме, дружок!
|
|
|

12.01.2009, 22:59
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 850
Провел на форуме: 4832771
Репутация:
1916
|
|
Базар свой прекращаем, бабки! Сидят тут пальцы гнут друг перед другом.
Вы оба не отличаетесь особым профессионализмом.
Так что переносим споры в пм, аську, куда угодно, а тему оставляем для регулярок)
|
|
|

12.01.2009, 22:59
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
delete
Последний раз редактировалось Pashkela; 16.01.2009 в 18:31..
|
|
|
MultiViews и mod_rewrite — два вопроса |

16.01.2009, 18:18
|
|
Новичок
Регистрация: 16.01.2009
Сообщений: 3
Провел на форуме: 2080
Репутация:
3
|
|
MultiViews и mod_rewrite — два вопроса
Постигая мудрость фреймворков, обнаружил невиданную ранее особенность:
URL вида
http://localhost/222/front .php
работал также при добавлении в конец слеша и любого мусора
http://localhost/222/front .php/dfojdofjso
В моём представлении такой URL мог соответствовать исключительно одной ситуации — наличии каталога с именем front.php и файла без расширения с именем dfojdofjso.
Озадаченный подобным казусом я полез на форум с вопросом «как такое может быть?». Мне сказали что дело в некой неизвестной мне тогда директиве MultiViews. Я обрадовался и закрыл тему, но поспешил. Оказалось, что эта директива всего лишь разрешает писать URL вида (1) вместо (2):
1) http://localhost/222/front
2) http://localhost/222/front .php
А ссылка вида
http://localhost/222/front .php/dfojdofjso
cпокойно работает при отключённом MultiViews!!! Вот что печатает этот скрипт:
REQUEST_URI => /222/front.php/dfdf
SCRIPT_NAME => /222/front.php
PHP_SELF => /222/front.php/dfdf
SCRIPT_FILENAME => z:/home/localhost/www/222/front.php
Я успокоил себя тем, что апач находит файл front.php и, рассудив, что это и есть его цель, выдаёт страницу. Т.е. поместил проблему в чёрный ящик.
Далее я создал .htaccess с таким содержимым:
RewriteEngine on
RewriteRule ^(.*)$ front\.php/dfojdofjso [L]
Т.е полагается переадресовывать любой запрос на front.php с мусором после слеша. Я ожидал один из двух вариантов:
1) сработает, как и при вводе URL http://localhost/222/front.php/dfojdofjso
2) не сработает и выдаст ошибку 404
Далее я проверил URL:
http://localhost/222/dfojdofjso.php
но результат оказался иным — произошла 500-я ошибка, а по логам — зацикливание.
Тут можно было бы обложится мануалами и разбираться в чём суть, но я продолжил эксперименты и получил во много раз более парадоксальную ситуацию. Изменённый .htaccess
RewriteEngine on
RewriteCond $1 !^front\.php
RewriteRule ^(.*)$ front\.php/sdfsdf [L]
И... это заработало. Заработало как в случае совпадения с front\.php, так и в случае несовпадения!
1) http://localhost/222/front.php
REQUEST_URI => /222/front.php
SCRIPT_NAME => /222/front.php
PHP_SELF => /222/front.php
SCRIPT_FILENAME => z:/home/localhost/www/222/front.php
2) http://localhost/222/dfojdofjso .php
REQUEST_URI => /222/dfojdofjso.php
SCRIPT_NAME => /222/front.php
PHP_SELF => /222/front.php/sdfsdf
SCRIPT_FILENAME => z:/home/localhost/www/222/front.php
Т.е добавление условия заставило нерабочее правило работать как в случае выполнения условия (1), так и в случае невыполнения условия (2), чего, по идее, быть не может. Вообще, я предпочитаю разбираться во всём самостоятельно, однако данная ситуация разорвала мой мозг поэтому приходится просить помощи снова. Общее представление как работает mod rewrite я имею, поэтому прошу не отсылать меня к абстрактной документации.
На всякий случай сформулирую вопросы:
1) Как же всё-таки URL вида
http://localhost/222/front.php/dfojdofjso
при наличии файла front.php работает при отключённом MultiViews?
2) Самый главный вопрос — почему правило
RewriteEngine on
RewriteRule ^(.*)$ front\.php/sdfsdf [L]
вызывает зацикливание независимо от URL, а правило
RewriteEngine on
RewriteCond $1 !^front\.php
RewriteRule ^(.*)$ front\.php/sdfsdf [L]
не вызывает зацикливания, опять таки независимо от URL?
Прошу прощения за длинный пост 
|
|
|

16.01.2009, 18:43
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
RewriteRule обратные_связи: Это обратные связи вида
$N
(0 <= N <= 9) предоставляющие доступ к сгруппированным частям (в круглых скобках!) шаблона из соответствующей директивы RewriteRule (единственной, следующей сразу за текущим набором директив RewriteCond).
.........
Условие это шаблон условия, т.е., какое-либо регулярное выражение применяемое к текущему экземпляру СравниваемаяСтрока, т.е., СравниваемаяСтрока просматривается на поиск соответствия Условие.
Помните: Условие это perl совместимое регулярное выражение с некоторыми дополнениями:
Вы можете предварять строку шаблона префиксом '!' (восклицательный знак) для указания несоответствия шаблону.
http://htaccess.net.ru/doc/mod_rewrite/RewriteCond.php
т.е. у тебя типо получается если НЕ " ^front\.php", то
"^(.*)$" из строки "RewriteRule ^(.*)$ front\.php/sdfsdf [L]"
а то, что справа от "^(.*)$" - просто игнорируется, я так понял
ЗЫЖ Потому то, что справа от "^(.*)$" - ерунда какая-то 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|