парни нужно спарсит русские имена с одного сайта но кодировка utf-8 и не могу не как( вот регулярка ([0-9a-z-A-ZА-Яа-я `~!^&*()_=?№+|>\@\$\#\%<]{0,30}) парсит все имена анг и с закарлючками а вот русские не парсит
/([0-9a-z-A-ZА-Яа-я `~!^&*()_=?№+|>\@\$\#\%<]{0,30})/u; так чтоли? скрипт ругается на етот модификатор
что такое "яп"? да с кодов все впорядке все нормально парсит кроми русский ников Code: my ($user) = $resp =~ /<span class="subhead">([0-9a-zA-Zа-яА-я- `~!^&*()_=?№+|>\@\$\#\%<]{0,30})<\/span>/u;
ЯП - язык программирования. Модификатор u преобразует паттерн в utf-8, если с ним не работает попробуйте контент конвертировать в win1251 и использовать регулярку без данного модификатора.
mazaxaka модификатор u является расширением php, несовместимым с регулярками перла. Как вариант попробуйте перед регуляркой указать Code: use utf8; my ($user) = $resp =~ /<span class="subhead">([0-9a-zA-Zа-яА-я- `~!^&*()_=?№+|>\@\$\#\%<]{0,30})<\/span>/u; Могу заблуждаться, вообще читайте вот это: http://xpoint.ru/know-how/Perl/PodderzhkaUnicode#UseUtf8 Ну или ждите перл погромиста
не допонял. в смысле все страницу из utf-8 в win1251? сдесь получаю страницу Code: $resp = $ua->get("http://forum.xakep.ru/showprofile.aspx?memid=$xx")->as_string; decode::_utf8_off($resp ); return $resp ; так примерно или опять оишбаюсь?
Правильный метод: 1. Сохраняем код в utf-8 и указываем это с помощью "use utf8;" 2. Перед обработкой декодируем все данные, приходящие извне. Code: use utf8; use Encode; use feature 'say'; use LWP::UserAgent; my $encoded = LWP::UserAgent->new->get('http://www.baidu.com/')->content; my $decoded = decode('euc-cn', $encoded); say $decoded =~ /百度/; Что касается LWP::UserAgent, нужно пользоваться методом decoded_content: Code: use utf8; use Encode; use feature 'say'; use LWP::UserAgent; my $decoded = LWP::UserAgent->new->get("http://www.baidu.com/")->decoded_content; say $decoded =~ /百度/;
все просто. всего то RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.php?url=$0 [QSA,L]
помогите передалать RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* index.php?url=$0 [QSA,L] под такие условия. если запрашивается файл с расширенеим pdf или css или файл /admin/index.php то перенаправляем на них иначе на index.php который в корне
помогите вытащить id из строки при помощи preg_match или preg_replace /test/test/test/bla-bla-bla-bla-1.html отсюда нужен номер 1, но проблема в том что номер может быть еще в тексте blabla, потому нужен именно тот который -1.html заранее спасибо!
Так подойдёт? PHP: $text = '/test/test/1.html/test/bla-bla-bla-bla-25.html'; if (preg_match_all("/[0-9]*.html/", $text, $regs)) {echo str_replace('.html', '', substr($text, strpos($text, $regs[0][(count($regs[0])-1)])));}
ага работает спасибо! но код громозкий получился, переделал на вот так: PHP: preg_match("/[0-9]*.html/", $_SERVER['REQUEST_URI'], $regs); echo str_replace('.html', '', $regs[0]);
Логично. Но тогда PHP: preg_match_all("/[0-9]*.html/", $_SERVER['REQUEST_URI'], $regs) echo str_replace('.html', '', $regs[0][count($regs)]); На всякий случай. Хотя, это уже паранойя ))
не понял что должно дать [count($regs)] зачем подсчитывать массив? конструкция сработала только так PHP: preg_match_all("/[0-9]*.html/", $_SERVER['REQUEST_URI'], $regs); echo (int) str_replace('.html', '', $regs[0][0]); с [count($regs)] вывело только точку
Сорри, не [count($regs)], а [count($regs[0])-1] Если вдруг встретится 2 раза 1.html, то id из последнего будет взят
ну да логично 1.html-1.html кстати может это можно через nginx выводить id?? а то я тут собираю самодельный чпу на пхп, а в nginx rewrite выставил PHP: rewrite ^/(.*)(.html)$ /test_chpu2.php?id=$1 last;
Какая самая короткая регулярка для проверки мыла на js ? Нужна именно короткая,а не куча наборов a-z... )