Forum Webscript.Ru
Программирование => Perl => Тема начата: Stek от 14 Марта 2002, 14:39:50
-
Маленький и наверное весьма глупый вопрос :rolleyes:
Есть строка как http://www.server.com/url.php?id=20, т.е. строка с всевозможными параметрами. А ее надо превратить в просто строку http://www.server.com/url.php, в строку без параметров.
Как это сделать на перле в наиболее быстром и компактном виде, особенно с учетом того что на обработку будет отданно несколько десятков тысяч строк.
-
Использовать mod_rewrite
http://www.engelschall.com/pw/apache/rewriteguide/
и
http://www.apache.org/docs/mod/mod_rewrite.html
-
А при чем тут вообще мод реврайт ? Я же указал, мне параметры надо отрезать, т.е. выкинуть к чертям. Это обработка лога, она вообще в кроне делается.
-
Это обработка лога, она вообще в кроне делается.
А я по твоему, телепат? Какой вопрос-такой ответ.
$url=~ s/\\?\\S+//i;
-
NeoNox
а я и спрашивал, как убрать параметр именно из строки. А за ответ отдельное спасибо :)
-
как убрать параметр именно из строки
Ну я так и понял. Только как адрессную... :)
-
Опять я, и снова по старому вопросу.
Вот код
$_s="http://www.ya.ru/yandsearch?text=%CD%E0%F3%F2%E8%EB%F3%F1 %CF%EE%EC%EF%E8%EB%F3%F1";
$_s=~ s/\\?\\S+//i;
print $_s."\\n";
$_s="http://www.ya.ru/yandsearch?text=vasia&id=12";
$_s=~ s/\\?\\S+//i;
print $_s."\\n";
В результате запуска получаем следующее:
[url]http://www.ya.ru/yandsearch[/url] %CF%EE%EC%EF%E8%EB%F3%F1
[url]http://www.ya.ru/yandsearch[/url]
Почему не корректно работает с первой строкой ?
-
Почему не корректно работает с первой строкой ?
Потому что в ней пробел есть, а в регулярном выражении написано \\S, что означает любой непробельный символ.
-
Тогда напрашивается вопрос - как быть ?
-
Тогда напрашивается вопрос - как быть ?
perldoc perlre :)
Учите регэкспы бо они рулез.:))
$_s=~ s/\\?.*//;
-
Спасибо.