ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: location ~ \.php$



On 10/18/07, Gena Makhomed <makhomed@xxxxxxxxxxxxxx> wrote:
> если это действительно так, тогда может быть имеет смысл внутри nginx
> регулярные выражения вида ~ \.php$ обрабатывать не через библиотеку pcre
> а специально оптимизированной для такого случая функцией "сопоставления"?

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

=== test-re-opt.pl ===
#! /usr/bin/perl -w


use strict;
use re 'debug';

my $sample = "index.php";

if ($sample =~ /\.php$/) {
  print "matched\n";
} else {
  print "not matched\n";
}
=== /test-re-opt.pl ===

выдача:

[alexm@mynd tmp]$ perl test-re-opt.pl
Compiling REx `\.php$'
size 4 Got 36 bytes for offset annotations.
first at 1
   1: EXACT <.php>(3)
   3: EOL(4)
   4: END(0)
anchored ".php"$ at 0 (checking anchored isall) minlen 4
Offsets: [4]
        1[5] 0[0] 6[1] 7[0]
Guessing start of match, REx "\.php$" against "index.php"...
Found anchored substr ".php"$ at offset 5...
Starting position does not contradict /^/m...
Guessed: match at offset 5
matched
Freeing REx: `"\\.php$"'


как-то так....

-- 
Алексей Махоткин
http://squadette.ru/


 




Copyright © Lexa Software, 1996-2009.