Просмотр полной версии : [Регулярки & Mod_Rewrite] Задай вопрос, получи ответ.
FireFenix
06.06.2009, 22:17
<a href="http://site.ru" alt="site">fh</a>
Ну если у тебя так в твоём посте, то получается что если ввели первый неправильно, то второй не проверяется из-за die() :)
Постом выше я объединил 2 в 1, попробуй его
ща попробую echo вывести потому что реально не хочет
FireFenix
06.06.2009, 22:34
всеравно не правильно...
У меня всё работает....
Приведи кусочек кода обработки и какие ты входные данные используешь
смотри, есть форма POST и я нажимаю Сабмит и проверяю данные сначало, на empty() потом на strlen() и птом на регулярку и оно пишет Вы не правильно ввели код баннера или ссылки
попробуй у себя в ПОСТ форме сделать
FireFenix
06.06.2009, 22:51
попробуй у себя в ПОСТ форме сделать
Честно, я не знаю почему у тебя не работает. Вот вместе c HTML мой вариант - показывает результат 2х выборок.
<form id="form1" name="form1" method="post" action="?">
<input id="code" name="code" type="text" size="100" value='<a href="/home/1234njj757hjvd.jpg">Я ссылко</a>'>
<input name="Submit" type="submit" value="button">
</form>
<?php
//$string = '<a href="любой текст">Любой текст</a>';
//$string = '<a href="любой текст" любой текст(типо alt="" title="")><img 7890src="любой текст картинки" height="33" width="88" любой текст></a>';
if (strlen($_POST['code']) > 0 )
{
$regexp1 = '/<a href="[^"]*"[^>]*>.*<\/a>/is';
$regexp2 = '/<a href="[^"]*"[^>]*><img src="[^"]*"[^>]*><\/a>/is';
if(!preg_match($regexp1, $_POST['code']))
{
echo("1 : Вы не правильно ввели код баннера или ссылки");
} else {
echo("1 : Правильно");
}
echo('<br>');
if(!preg_match($regexp2, $_POST['code']))
{
echo("2 : Вы не правильно ввели код баннера или ссылки");
} else {
echo("2 : Правильно");
}
}
?>
Может у тебя предидущая проверка останавливает? или не с того контрола считываешь?
ну я розбирусь. спасибо за регулярку
смотри у меня есть форма и почему то когда я echo вывожу то выводит
<a href=\"/home/1234njj757hjvd.jpg\">Я ссылко</a> тоисть надо сделать парсер чтобы он поддерживал \"\"
erihtoney
07.06.2009, 12:02
я ссылко (http://ru.php.net/manual/ru/function.stripslashes.php)
блин я уже забыл, с утра не сображаю..
Чтото я совсем встрял не простом вопросе.
Собственно,имею мног текста,новость.Необходимо вывести первые 780 знаков,ну какбе краткая новость на главной.В новости есть все знаки ествевственно.Пытаюсь оторвать кусок так:
preg_match('|(.*){780}|',$row['body'],$match);
Но выводиться 346,я так понимаю он после перевода строки искать не хочет.ЧТото пробывал добавить
sim,Ui, непомогает =(
Кто посоветует что? И вообще,правильно ли я делаю,выводя так краткую новость? Может это рорганизовать по другому? Кто поможет?
FireFenix
10.06.2009, 23:00
preg_match('/^(.*){780}/ism',$row['body'],$match);
preg_match('/^(.*){780}/ism',$row['body'],$match);
Выводит всю новость :(
Pashkela
10.06.2009, 23:08
Было уже:
if (strlen($novost)<=780) echo $novost;
else echo substr($novost,0,780) . "...\n";
Возмонжно,можно это реалиовать с помощью MySQL? Прямо в запросе? И не мучаться регулярками?
FireFenix
10.06.2009, 23:15
Тада, чё-то я не выспался (.*){780} - любой контент 780 раз. Впринципе и должно выдавать входящий текст :)
krypt3r правильно написал регулярку, используй её :)
mailbrush
10.06.2009, 23:25
krypt3r правильно написал регулярку, используй её
А как же модификатор s?
Мужики! Всем привет!
Помогите разобраться... Есть сообщения вида:
URL запроса: http://www.google.com/search?&hl=en&ie=UTF-8&q=site:.org.jm+inurl:"addguest.htm"+intext:register+site&num=100
Error: Is not found of any document appropriate to inquiry
STATUS :Получено 0 URL.
Руглярка должна возвращать 2 куска:
inurl:"addguest.htm"+intext:register
0
Каждый по отдельности спарсить получает, а всё вместе нет :(
Большое спасибо за помощь!
FireFenix
11.06.2009, 23:21
<?php
$content = 'URL запроса: http://www.google.com/search?&hl=en&ie=UTF-8&q=site:.org.jm+inurl:"addguest.htm"+intext:register+site&num=100
Error: Is not found of any document appropriate to inquiry
STATUS :Получено 0 URL.';
preg_match('/inurl:"([^"]*)".*intext:([^\+|^\n]*).*STATUS :Получено (.+) URL/ism', $content, $match);
echo('inurl: ' . $match[1] . '<br>');
echo('intext: ' . $match[2] . '<br>');
echo('Получено: ' . $match[3] . ' URL');
?>
В $match[1] - параметры заданные в inurl
В $match[2] - параметры заданные в intext
В $match[3] - количество полученных url
preg_match_all('#<div.*?>.*?)</div>#is' ", $content, $text));
Где ошибка? :(
mailbrush
13.06.2009, 00:55
",
А это что?
А это что?
хз :)
preg_match_all('#<div.*?>.*?)</div>#is', $content, $text));
тоже не работает :(
.:EnoT:.
13.06.2009, 01:14
*?)
Зачем тут скобка?)
$text));
и тут тоже зачем?)
Зачем тут скобка?)
и тут тоже зачем?)
preg_match_all('#<div.*?>.*?</div>#is', $content, $text);
Спасибо!
Не оставишь контакт ? нужно ещё дописать :)
помогите с ЧПУ:
1. есть ссылка вида:
index.php?do=music&act=mus&cat=othertext
и надо сделать:
music/othertext/
othertext - это любой текст
2. есть ссылка вида:
index.php?do=music&act=song&id=5
и надо сделать:
music/5/
5 - любая цифра
3. есть ссылка вида
/index.php?do=music&act=mus&cat=super&page=5
и надо сделать:
/music/super/page/5/
super - это любой текст
5 - любая цифра
всем кто поможет даю +
.:EnoT:.
13.06.2009, 16:00
1.
RewriteEngine On
RewriteBase /
RewriteRule ^music/([a-zA-Z0-9]+)/$ index.php?do=music&act=mus&cat=$1 [L]
2.
RewriteEngine On
RewriteBase /
RewriteRule ^music/([0-9]+)/$ index.php?do=music&act=song&id=$1 [L]
3.
RewriteEngine On
RewriteBase /
RewriteRule ^music/([a-zA-Z0-9]+)/page/([0-9]+)/$ index.php?do=music&act=mus&cat=$1&page=$2 [L]
Соответственно если в словах совсем любой может быть текст, то замени ([a-zA-Z0-9]+) на (.+)
Эээ,есть url вида http://localhost/test/s.php
Как замутить редирект на google.ee с помощью mod_rewrite ? оО
Pashkela
16.06.2009, 23:56
RedirectMatch (.*/test/s.php)$ http://google.ru$1
Нууу,это не мод рерайт:(.Веля терь тоже так колдует!:(.В общем...
Options +Includes
RewriteEngine On
RewriteRule ^robots.txt$ /test/text.cgi
тупо то,что незаметна подмена урлов визуально(((
А вот теперь Веля хочет так:
http://localhost/robots.txt?id=рандомное число ---- исходный урл.
http://localhost/test.php?id=рандомное число - конечный урл
Не выходит ничего(
помогите с ЧПУ
есть ссылка вида: index.php?do=teleprog&act=archive&id=цифра. и мне надо чтобы оно делало редирект типо /teleprog/archive/цифра/
я тут сотворил одну. если не правильно исправьте.
RewriteRule ^teleprog/archive/([0-9]+)/$ index.php?do=teleprog&act=archive&id=$1 [L]
teleprog/archive/([0-9]+)
и смотрите ещё... у меня в базе храниться в виде время(15:23 например). Название программы. например
15:23. Новости. мне надо чтобы парсер при выходе все времена парсил в одном месте типо <b>15:23</b>, а другом <dt>15:23</dt>. Надо 2 регулярки... чтобы они заменивали даты... спасибо заранее
и смотрите ещё... у меня в базе храниться в виде время(15:23 например). Название программы. например
15:23. Новости. мне надо чтобы парсер при выходе все времена парсил в одном месте типо <b>15:23</b>, а другом <dt>15:23</dt>. Надо 2 регулярки... чтобы они заменивали даты... спасибо заранее
непонял
уже не надо. я сделал... спасибо за исправление...
а как сделать регулярку чтобы она получала значение "Любой текст"
в базе храниться текст:
<b>15:23</b> Программа
и надо чтобы она с этого розбивала и получала отдельно значение
15:23 и отдельно значение Программа.... (программа может быть (.*)
Что-то типа
preg_match_all ('/<b>(\d{2}:\d{2})<\/b>(.+?)(\z|\n)/', $str, $m);
помогите. у меня есть ссылка вида
index.php?do=gallery&act=view&allbum=test&page=5
где test - текст, 5 - цифры.
я хотел сделать ЧПУ, но она не роботает
RewriteRule ^gallery/([a-zA-Z0-9]+)/([0-9]+) index.php?do=gallery&act=view&allbum=$1&page=$2 [L]
FireFenix
20.06.2009, 14:33
Без "^" сделай. "^" - означает начало строки, а gallery - не начало строки
ничего не изменилось. смотри у меня есть там ещё регулярки какие роботают, а вот эта нет
Слэш в конце регулярки поставьте
^gallery/([a-zA-Z0-9]+)/([0-9]+)/
^gallery/([a-zA-Z0-9]+)/([0-9]+)$
И пример использования.
Мой пример,это например:
http://site.ru/gallery/ArtoK7/98
всеравно... http://localhost/gallery/all/2/
alwex, обращайтесь так
http://site.ru/gallery/test/5/
без слэша получите 404
Алвекс, под мю регулярку слеш не нужен в конце
да как я только не обращался... там есть ещё 1 ЧПУ но пашет:
RewriteRule ^gallery/([a-zA-Z0-9]+) index.php?do=gallery&act=view&allbum=$1 [L]
а как бы переписать регулярку. мб другие варианты есть...
Ekpanipui sleshi oO
Tipo \/ ve3de noctaBb
alwex В следующий раз сразу пишите, что у вас еще там есть. Как вариант:
RewriteEngine On
RewriteRule ^gallery/([a-zA-Z0-9]+)/?$ index.php?do=gallery&act=view&allbum=$1 [L]
RewriteRule ^gallery/([a-zA-Z0-9]+)/([0-9]+)/?$ index.php?do=gallery&act=view&allbum=$1&page=$2 [L]
Попробуйте объединить в одну регулярку.
RewriteRule ^gallery/([a-zA-Z0-9]+)/?([0-9]*)/?$ index.php?do=gallery&act=view&allbum=$1&page=$2 [L]
У меня по крайней мере, работает и /gallery/test, и /gallery/test/6
Доброго времени суток.
Пытаюсь составить регуляку в javascript.
Есть код:
var match;
var re = new RegExp("link\">Уничтожитель\\s?<\\s*Время\\sстроительства\\s([\\d:]+)", "gi");
while(match = re.exec(document.documentElement.innerHTML)){
alert(match);
}
по идее код должен возвращять время строительства, но что то не работает.
Кусок кода страци:
<td><a href="http://site.ru/xxx.php/0000000/47" title="" class="link"><img src="http://site.ru/xxx.php/0000000/47BOMBER.gif" title="Бомбардировщик" alt="Бомбардировщик" class="image" /></a></td>
<td style="vertical-align: top;"><a href=http://site.ru/xxx.php/0000000/47" title="" class="link">Бомбардировщик</a> (69 в наличии) <br />
Бомбардировщик был защиту.<br />
Необходимо Металл: 50.000 Кристалл: 25.000 Дейтерий: 15.000 <br />
Время строительства 00:45:00 </td>
<td><input type="text" name="40" value="0" size="3" maxlength="4" class="center" /></td>
</tr> <tr>
<td><a href="http://site.ru/xxx.php/0000000/47" title="" class="link"><img src="http://uni1.darkstar-nn.ru/images/buildings/STAR_DESTROYER.gif" title="Уничтожитель " alt="Уничтожитель " class="image" /></a></td>
<td style="vertical-align: top;"><a href="http://site.ru/xxx.php/0000000/47" title="" class="link">Уничтожитель </a> (16 в наличии) <br />
Уничтожитель - король среди военных кораблей. Его мультифланговые ионные, плазменные и гауссовые орудийные .<br />
Необходимо Металл: 60.000 Кристалл: 50.000 Дейтерий: 15.000 <br />
Время строительства 01:06:00 </td>
<td><input type="text" name="41" value="0" size="3" maxlength="4" class="center" /></td>
astrologer
21.06.2009, 15:15
<table id="stats">
<tr>
<td><a href="http://site.ru/xxx.php/0000000/47" title="" class="link"><img src="http://site.ru/xxx.php/0000000/47BOMBER.gif" title="Бомбардировщик" alt="Бомбардировщик" class="image" /></a></td>
<td style="vertical-align: top;"><a href=http://site.ru/xxx.php/0000000/47" title="" class="link">Бомбардировщик</a> (69 в наличии) <br />
Бомбардировщик был защиту.<br />
Необходимо Металл: 50.000 Кристалл: 25.000 Дейтерий: 15.000 <br />
Время строительства 00:45:00 </td>
<td><input type="text" name="40" value="0" size="3" maxlength="4" class="center" /></td>
</tr> <tr>
<td><a href="http://site.ru/xxx.php/0000000/47" title="" class="link"><img src="http://uni1.darkstar-nn.ru/images/buildings/STAR_DESTROYER.gif" title="Уничтожитель " alt="Уничтожитель " class="image" /></a></td>
<td style="vertical-align: top;"><a href="http://site.ru/xxx.php/0000000/47" title="" class="link">Уничтожитель </a> (16 в наличии) <br />
Уничтожитель - король среди военных кораблей. Его мультифланговые ионные, плазменные и гауссовые орудийные .<br />
Необходимо Металл: 60.000 Кристалл: 50.000 Дейтерий: 15.000 <br />
Время строительства 01:06:00 </td>
<td><input type="text" name="41" value="0" size="3" maxlength="4" class="center" /></td>
</tr>
</table>
<script type="text/javascript">
(function(document, test)
{
if(test)
{
document = { documentElement: document.getElementById('stats') }
}
var pattern = /link">Уничтожитель[\s\S]+Время строительства ([\d:]+)/i;
var target = document.documentElement.innerHTML;
var result = target.match(pattern);
alert(result && result[1]);
})(document, true);
</script>Хотя, может, стоит посмотреть в сторону xpath?
я делаю антиличь через .htaccess и в папке например стоит файл .htaccess и мне надо чтобы он делал редирект например на файл
file/1.exe но чтобы могли зайти только с определенного айпи и получить редирект.
например я зашел в папку с не того айпи что прописан и ошибка а то кто с того то редирект на тот файл но чтобы ссылки на файл не видно было
Заюзать Order по типу
Order deny, allow
Deny from all
Allow from [valid-IP]
А правило записать что-то типа
RewriteRule ^file/?.+$ file/1.exe
а можно юзать и то и то в одноф файле
alwex Что значит в одном файле?
Order deny,allow
Deny from all
Allow from [valid-IP]
RedirectMatch .* http://site.ru/file.exe
ааа, спс. как всегда выручаешь
Сегодня впервые попробовал разобраться с пхп...:)
Пробую исправить недочеты в скрипте вап клик-клуба. И не могу никак сделать шаблон preg_match для ввода url в профиль.
Мне нужно, чтобы в поле для адреса можно было вставить только url. Без http.
Есть такой шаблон if(preg_match("/^((\w+\.){1,})\w{2,}$/i", $link))
но он не пропускает урлы с знаками ? и вобще все ссылки, отличные от sait.com
Помогите пожалуйста.
есть некая страница в которой все ссылки вида
article/index.php?id_page=21
каким образом можно их переделать в ЧПУ ? тобишь чтоб уже когда страница загрузилась все ссылки были articles21.html
прописал
RewriteEngine On
RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_article=$1
но всеравно на странице все ссылки ....index.php?id_page=21
или надо все ссылки переписывать во всех файлах???
SleepShadowWeb
26.06.2009, 02:25
есть некая страница в которой все ссылки вида
article/index.php?id_page=21
каким образом можно их переделать в ЧПУ ? тобишь чтоб уже когда страница загрузилась все ссылки были articles21.html
прописал
RewriteEngine On
RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_article=$1
но всеравно на странице все ссылки ....index.php?id_page=21
или надо все ссылки переписывать во всех файлах???
может вместо:
RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_article=$1
нужно:
RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_page=$1
MaSTeR GэN
26.06.2009, 12:50
ребят в php не силен (подскажите плиз регуляку для поиска текста между двумя 0x1 То есть что то вроде 0x1[text]0x1 заранее благодарен )))
Pashkela
26.06.2009, 12:56
<?php
$a = '0x1 blf-blf 0x1';
preg_match_all('|0x1(.*)0x1|',$a,$res);
print_r($res[1]);
?>
может вместо:
RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_article=$1
нужно:
RewriteRule ^article([0-9]+)\.html?$ /article/index.php?id_page=$1
это я ошибся все правильно там id_page стоит просто не ту запись скопирнул
суть вопроса таже
помогите сново)))
у меня в базе храниться так
Текст<br />Текст<br /> надо чтобы оно подсчитало количество этих Текст
Текст это (.*)
что за прикол?
$str="<img src=/sorry/image?id=7546628731245181042hl=ru border=1";
print $& if $str =~ m/=\d{0,19}/;
выдает только =
а
$str="<img src=/sorry/image?id=7546628731245181042hl=ru border=1";
print $& if $str =~ m/d=\d{0,19}/;
d=7546628731245181042
:)
Народ объясните человеческим языком что за символ "^" (без ковычек)
Просто я ни как не могу разжевать что это за символ! (читал несколько описаний все равно не понятно)
Ах да еще вместе с примерчиком!
^ крышка, обозначает любой символ кроме тех ,которые перечислены после [^ и до].
пример:
<?php
echo preg_replace('/[^*.примерчиком!]/','<font color=red>бла</font>',"Ах да с примерчиком!");
?>
заменит все кроме "примерчиком!"
L I G A Вы не правы. Ваша регулярка заменит много чего лишнего и не один раз
diznt Внутри квадратных скобок (например [^abcdef]) будет означать инверсию, то есть "любой знак, но НЕ a,b,c,d,e,f"
Вне квадратных скобок - будет означать начало строки. Например preg_match('/^abcd/' ....) будет искать строку начинающуюся на "abcd"
L I G A Вы не правы. Ваша регулярка заменит много чего лишнего и не один раз
diznt Внутри квадратных скобок (например [^abcdef]) будет означать инверсию, то есть "любой знак, но НЕ a,b,c,d,e,f"
Вне квадратных скобок - будет означать начало строки. Например preg_match('/^abcd/' ....) будет искать строку начинающуюся на "abcd"
в данном случае она не заменит лишнего поскольку в предыдущих словах нет букв и символов которые есть в "примерчиком!",ну а "*" да сори автоматом поставил,там 1 раза хватит.
L I G A Достаточно универсально НАДЕЯТЬСЯ что буквы из ПРОИЗВОЛЬНОЙ фразы не встретятся до нее, это раз. Вас можно было понять так - конструкция [^текст] позволяет исключить СЛОВОСОЧЕТАНИЕ, а не каждую отдельную букву из набора, это два. Три - хорошо, что PCRE модуль умен, иначе бы конструкция [^.] (с точкой внутри) исключала бы ЛЮБЫЕ символы в принципе
2 спасибо за понимание.
3 что то вы бред несете сударь точка внутри [] теряет свой смысл
"любой символ" и обозначает простую точку .
>>иначе бы конструкция...
на иначе я вам скажу тоже не универсально надеяться.
есть такой реврайт:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?mode=$1 [L,QSA]
ErrorDocument 404 /index.php?mode=error404
ErrorDocument 400 /index.php?mode=error400
ErrorDocument 500 /index.php?mode=error500
все ок, но на сайте стоит форум в папке /forum/ - как исключить её от реврайта?
ntldr RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/forum/.*
RewriteRule ^(.*)$ /index.php?mode=$1 [L,QSA]
ErrorDocument 404 /index.php?mode=error404
ErrorDocument 400 /index.php?mode=error400
ErrorDocument 500 /index.php?mode=error500
Реврайт работать не будет для папки forum, однако ошибки 404 400 и 500 все так же будут редиректиться на индекс
mailbrush
13.07.2009, 16:09
#(\d{,9})#
Какая строка подходит под эту регулярку?
FireFenix
13.07.2009, 16:48
#(\d{,9})#
Какая строка подходит под эту регулярку?
Открывающая фигурная скобка, расположенная в недопустимой для квантификатора позиции, либо не соответствующая синтаксису квантификатора, интерпретируется как обыкновенная символьная строка. Например, {,6} не является квантификатором, а интерпретируется как символьная строка из четырех символов
©
привет всем, помогите плиз...
надо достать данные "ЛЮБОЙ ТЕКСТ" с
<tr><td width="390" valign="top"><font color="#000000"><p align="justify">ЛЮБОЙ ТЕКСТ</td></tr>
Shadow_p1raT
14.07.2009, 12:01
Йо,Думал я уже на php кодить разучился))
держи мой быдлокод)
<?php
$text = '<tr><td width="390" valign="top"><font color="#000000"><p align="justify">ЛЮБОЙ ТЕКСТ</td></tr>';
preg_match('~"justify">(.*)<\/td>~is',$text,$reg);
print_R($reg);// в $reg[1] будет ЛЮБОЙ ТЕКСТ
?>
Всем привет, помогите с регуляркй
<tr class="abc">
<h1>123456778990</h1>
<div></div>
</tr>
вот такой кусочек кода. из него регулярка вытаскивает всё что между <tr></tr>
/<tr class="abc">(.*)</tr>/s
но как сделать запрет на слово целиком? я имею ввиду как [^"] запрещает двойную кавычку.
Так же нужно и тут, чтобы запрет стоял например на тег <h1>, т.е. что-то типа ([^<h1>]*).
но это не работает.
подскажите...
nc.STRIEM
15.07.2009, 01:16
попробуй так (.*?)<h1>
выберет все до тэга <h1>
Привет!
Онлайн юзер
<img src="/res/images/labels/online.gif" alt="Находится в данный момент на сайте" /><br/>А л ё н а </td><td align="center" class="smallnormal"><div class="photoW " uid="3874000000360916803" nick="VLJUBLJONNIJ V NOCH,DJAVOLJONOK" mainPhotoId="3874000000090169113" lastLogin="1247892931551" sm="1" photodescr="113874000000090169113" >
Не онлайн юзер
<br/> bal cvetov</td><td align="center" class="smallnormal"><div class="photoW " uid="2166000001794935419" nick="LAURA" mainPhotoId="2166000000090885117" lastLogin="1247866964919" sm="1" photodescr="012166000000090885117" >
Как сделать чтоб скрипт находил uid="3874000000360916803", а именно 3874000000360916803 НО только с тех юзеров кто онлайн??
FireFenix
18.07.2009, 12:39
<?php
$text = '<img src="/res/images/labels/online.gif" alt="Находится в данный момент на сайте" /><br/>А л ё н а </td><td align="center" class="smallnormal"><div class="photoW " uid="3874000000360916803" nick="VLJUBLJONNIJ V NOCH,DJAVOLJONOK" mainPhotoId="3874000000090169113" lastLogin="1247892931551" sm="1" photodescr="113874000000090169113" >';
//$text = '<br/> bal cvetov</td><td align="center" class="smallnormal"><div class="photoW " uid="2166000001794935419" nick="LAURA" mainPhotoId="2166000000090885117" lastLogin="1247866964919" sm="1" photodescr="012166000000090885117" >';
$regex = '/online.gif" alt="Находится в данный момент на сайте".*<div class="photoW " uid="([^"]*)"/ims';
preg_match_all($regex, $text, $match);
print_r($match);
?>
помогите сделать регулярку чтобы сначало проверяло или есть в тексте
<!--dle_video_begin:любой текст-->ЛЮБОЙ ТЕКСТ<!--dle_video_end-->
и если есть то пусть ведергивает:
url:'ТУТ ДЕРГАТЬ'
FireFenix
21.07.2009, 13:22
<?php
$text =
'блабла
<!--dle_video_begin:любой текст-->ЛЮБОЙ ТЕКСТ<!--dle_video_end-->
блаблаurl:\'ТУТ ДЕРГАТЬ1\'блабла
url:\'ТУТ ДЕРГАТЬ2\'
блабла url:\'ТУТ ДЕРГАТЬ3\' блабла';
if (preg_match('/<!--dle_video_begin:.*?-->.*?<!--dle_video_end-->/ims', $text))
{
preg_match_all('/url:\'([^\']*)\'/ims', $text, $match);
print_r($match[1]);
}
?>
Наверное так, если я правильно понял
а какой функцией удаление похожих строк делаеться что бы была только 1 строка
FireFenix
21.07.2009, 13:59
array_unique() — Убрать повторяющиеся значения из массива
нужна ещё помощь...
у меня есть текст где есть
текст(переменная $g),
надо сделать так чтобы он вырезал
$g,
я пробовал чреез str_replace но не хочет...
FireFenix
21.07.2009, 20:27
За то время, скока раз ты задал вопросов по регуляркам, можно было бы их уже выучить, а не задавать простейшие вопросы
<?php
$text = 'текст(переменная $g), текст(переменная $i), текст(переменная $k),';
preg_match_all('/\(.*?\$(.*?)\)/ims', $text, $match);
print_r($match);
?>
да я каждый раз учу. мне регулярки нужны по 10 раз в день но я спрашиваю меньше потому что половину сам пишу, а что не могу то не пишу, я имел введу вырезал
тип preg_replace...
FireFenix
21.07.2009, 20:38
каждый раз? там учить на 2 часа
preg_replace - не вырезает, а заменяет.... пора бы уже что-ли тебе и пхп выучить
я знаю, и мне надо заменять, просто я тормознул...
каких 2 часа? мой друг говорит что месяца
Помогите с регуляркой:
<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить_этот_текст</a></div></dd>
<?php
$code='<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить_этот_текст</a></div></dd>';
preg_match_all('/<a href="\/id00900">(.*)<\/a><\/div><\/dd>/i', $code, $matches);
echo "<pre>";
print_r ($matches[0][0]);
echo "</pre>";
?>
L I G A, забыл написать, что id00900 - может быть разным, и
<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;">
Является явным указателем этой ссылки, т.к. до этого есть такие ссылки...
L I G A, забыл написать, что id00900 - может быть разным, и
<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;">
Является явным указателем этой ссылки, т.к. до этого есть такие ссылки...
$the_text=<<<HTML
<dt>Имя:</dt><dd>
<div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить
_этот_текст</a></div>
</dd>
<dt>Имя:</dt><dd>
<div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить_этот_текст_2</a></div>
</dd>
HTML;
preg_match_all('#<div style="width: 140px; overflow: hidden;"><a href=.*[^>]>(.*)</a>#isU',$the_text,$match);
print_r($match);
Pashkela
23.07.2009, 21:40
<pre>
<?php
$a = '<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;"><a href="/id00900">вытащить_этот_текст</a></div></dd>';
preg_match_all('|<dt>.*</dt><dd><div style=.*><a href=.*>(.*)</a></div></dd>|Ui',$a,$res);
print_r($res[1]);
?>
</pre>
как распарсить строку типа
{"userId":"24389417527847511997","menuType":"User","fio":"Ольга Широкова ( ..."}</div></div></a></div></td></tr></table></div><div><img class="online"
делаю так:
preg_match_all('/{"userId":"([0-9]*)","menuType":"User","fio":"(.{0,30})"}<\/div><\/div><\/a><\/div><\/td><\/tr><\/table><\/div><div><img class="online"/', $body, $match);
не находит из-за символов " ( ..."
но в других случаях там вообще нет никаких символов, кроме латинских букв и пробелов
Дикс, лучше кинь пару запросов, чтобы понять что там быть может а что не может.
А так:
{"userId":"([0-9]+)","menuType":"User","fio":"(.*?)\s\( ..."}</div></div></a></div></td></tr></table></div><div><img class="online"
У меня отлично работает (python). ХЗ как там в PHP. Может нужно что-то дополнительно экранировать.
да в принципе уже разобрался, просто увеличил {0, 600}
а концовка "( ..."" -- она вообще нестандартная, её не надо писать
<?php
$code='{"userId":"24389417527847511997","menuType":"User","fio":"Ольга Широкова ( ..."}</div></div></a></div></td></tr></table></div><div><img class="online" )';
preg_match_all('/(?<!"userId":")(\d)+","menuType":"User","fio":"(.{0,30})(?=\( ..."}<\/div><\/div><\/a><\/div><\/td><\/tr><\/table><\/div><div><img class="online")/i', $code, $matches);
echo "<pre>";
print_r ($matches[0][0]);
echo "</pre>";
?>
помогите, написал регулярку, но не правильно почему-то...
вот есть текст:
<a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a>
и мне надо что бы оно выдировало это с текста. я сделал:
preg_match_all('/<a href="\/title\/(tt\d{1,8})\/"[^>]*>([^<]+)<\/a>/',$imdb_site_result,$results, PREG_SET_ORDER )
\d - все цифры)
и напиши что выдерать.
FireFenix
25.07.2009, 20:00
да выучи ты уже реглярки
<?php
$text = '<a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a>';
preg_match_all('/<a href="\/title\/([^"]*)"([^>]*)>([^>]*)<\/a>/', $text, $match);
print_r($match);
?>
Array
(
[0] => Array
(
[0] => <a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a>
)
[1] => Array
(
[0] => (любое)/
)
[2] => Array
(
[0] => ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ
)
[3] => Array
(
[0] => Тут тоже любой текст
)
)
я же написал что выдерать
<a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a>
Наверно стоит конкреизировать, тут можно понять что тебе все надо
/title/(любое)
ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ
Тут тоже любой текст
И почему вы такие изврашенсы? Неужели вам не будет удобнее использовать вместо // например ## без необходимости что то слешировать?
<?php
$code='<a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a>';
preg_match_all('/<a href="\/(.*)\/"[^><\/](.*)>(.*)<\/a>/i', $code, $matches);
echo "<pre>";
print_r ($matches);
echo "</pre>";
?>
И почему вы такие изврашенсы? Неужели вам не будет удобнее использовать вместо // например ## без необходимости что то слешировать?
да удобней написать # и потом не тыкать слеш , но / уже автоматом ставлю.
млин, почему-то не помогло...
вот текст который парсер должен выдернуть
<p style="margin:0 0 0.5em 0;"><b>Media from <a href="/title/tt0412142/" onclick="(new Image()).src='/rg/find-media-title/media_strip/images/b.gif?link=/title/tt0412142/';">"House M.D."</a> (2004)</b></p>
но мне нужно именно там где ссылка, а он нифига...
<?php
$text=<<<HTML
<p style="margin:0 0 0.5em 0;"><b>Media from <a href="/title/tt0412142/" onclick="(new Image()).src='/rg/find-media-title/media_strip/images/b.gif?link=/title/tt0412142/';">"House M.D."</a> (2004)</b></p>';
HTML;
preg_match_all('#<a href="(/title/.*)"#isU',$text,$match); print_r($match);
Всё, переделал я свой скрипт и улучшил немного и заработало и все вашы регулярки объеденил...)
есть мыло на страничке
enquiries@themanchestercollege.ac.uk
первый раз парсил все имейлы, у которых в конце одна зона
preg_match_all('/([0-9A-Za-z\_\-]*)\@([0-9A-Za-z\-\_]*)\.([a-zA-Z]{2,5})/i', $return, $matches);
второй раз имейлы с двумя зонами
preg_match_all('/([0-9A-Za-z\_\-]*)\@([0-9A-Za-z\-\_]*)\.([a-zA-Z]{2,5})\.([a-zA-Z]{2,5})/i', $return, $matches2)
и соответственно получил один и тот же имейл
[0] => enquiries@themanchestercollege.ac
[1] => enquiries@themanchestercollege.ac.uk
как вытащить одной регуляркой все имейлы с одной и двумя зонами в конце?
Диксpreg_match_all('/([0-9A-Za-z\_\-]*)\@([0-9A-Za-z\-\_]+)(\.[a-zA-Z]{2,5})+/i', $return, $matches);
Pashkela
29.07.2009, 13:23
<pre>
<?php
$text = 'Лабуда, anti_chat@yandex.ru, разный текст
Лабуда, enquiries@themanchester-college.ac, разный текст текста=)enqu578iries@themanchestercollege.ac .uk Приведите Лабуда, разный текст , разный текст пример текста=) Типо такого...';
preg_match_all('/[\w\-]+@[\w\-]+.\w+.\w+/', $text, $out);
print_r($out);
?>
</pre>
Здравствуйте, помогите пожалуйсто регулярку составить.
Есть такое вот HTML код
<head><title>13183-Купля/Продажа/Заработок в сети</title></head>
<body bgcolor="#239651" link="#006f11" vlink="#469453" text="#000000">
<form method="post" action="/?p=1&f=5&w=htm">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="100%">
<tr><td align="center" bgcolor="#005522"><font color="#ffffff"><b>13183-Купля/Продажа/Заработок в сети</b></font></td></tr>
<tr><td bgcolor="#a2edc0">
<a href="/?p=0&w=htm"><font color="#006f11">Форумы</font></a><br/>
<a href="/?p=1&f=5&w=htm&o=t"><font color="#006f11">Популярные темы</font></a><br/>
</td></tr>
<tr><td bgcolor="#c5ffdc">
30/07 00:04]<b>Slimi</b><br/><b><a href="/?p=3&f=5&t=3274158&w=htm&pg=4">продам!</a></b>(11)<br/> <br/>
29/07 23:20#<b>][akep</b><br/><b><a href="/?p=3&f=5&t=3274156&w=htm&pg=4">Продам или обменяю сайт</a></b>(4)<br/> <br/>
29/07 23:21#<b>cranz</b><br/><b><a href="/?p=3&f=5&t=3274142&w=htm&pg=4">Куплю сайт</a></b>(1)<br/> <br/>
29/07 23:01]<b>lbast_ru</b><br/><b><a href="/?p=3&f=5&t=3274128&w=htm&pg=4">Продам перса</a></b>(0)<br/> <br/>
29/07 23:40]<b>mrus.org</b><br/><b><a href="/?p=3&f=5&t=3274127&w=htm&pg=4">Кто денег на щет кинет ???</a></b>(32)<br/> <br/>
29/07 23:06]<b>SimBeerSk</b><br/><b><a href="/?p=3&f=5&t=3274126&w=htm&pg=4">Продам кредиты</a></b>(5)<br/> <br/>
29/07 23:05]<b>yar__94</b><br/><b><a href="/?p=3&f=5&t=3274121&w=htm&pg=4">куплю сайты на вен или кмx</a></b>(5)<br/> <br/>
</td></tr>
Как можно отфильтровать только ники
SimBeerSk
cranz
][akep
Pashkela
30.07.2009, 02:26
<pre>
<?php
@ini_set("display_errors","1");
$a = '
<head><title>13183-Купля/Продажа/Заработок в сети</title></head>
<body bgcolor="#239651" link="#006f11" vlink="#469453" text="#000000">
<form method="post" action="/?p=1&f=5&w=htm">
<table align="center" border="0" cellspacing="1" cellpadding="5" width="100%">
<tr><td align="center" bgcolor="#005522"><font color="#ffffff"><b>13183-Купля/Продажа/Заработок в сети</b></font></td></tr>
<tr><td bgcolor="#a2edc0">
<a href="/?p=0&w=htm"><font color="#006f11">Форумы</font></a><br/>
<a href="/?p=1&f=5&w=htm&o=t"><font color="#006f11">Популярные темы</font></a><br/>
</td></tr>
<tr><td bgcolor="#c5ffdc">
30/07 00:04]<b>Slimi</b><br/><b><a href="/?p=3&f=5&t=3274158&w=htm&pg=4">продам!</a></b>(11)<br/> <br/>
29/07 23:20#<b>][akep</b><br/><b><a href="/?p=3&f=5&t=3274156&w=htm&pg=4">Продам или обменяю сайт</a></b>(4)<br/> <br/>
29/07 23:21#<b>cranz</b><br/><b><a href="/?p=3&f=5&t=3274142&w=htm&pg=4">Куплю сайт</a></b>(1)<br/> <br/>
29/07 23:01]<b>lbast_ru</b><br/><b><a href="/?p=3&f=5&t=3274128&w=htm&pg=4">Продам перса</a></b>(0)<br/> <br/>
29/07 23:40]<b>mrus.org</b><br/><b><a href="/?p=3&f=5&t=3274127&w=htm&pg=4">Кто денег на щет кинет ???</a></b>(32)<br/> <br/>
29/07 23:06]<b>SimBeerSk</b><br/><b><a href="/?p=3&f=5&t=3274126&w=htm&pg=4">Продам кредиты</a></b>(5)<br/> <br/>
29/07 23:05]<b>yar__94</b><br/><b><a href="/?p=3&f=5&t=3274121&w=htm&pg=4">куплю сайты на вен или кмx</a></b>(5)<br/> <br/>
</td></tr>';
preg_match_all('|<b>(.*)</b><br/><b><a href|',$a, $res);
print_r($res[1]);
?>
</pre>
Array
(
[0] => banana jam
[1] => =777=
[2] => Amwe y
[3] => savruslan
[4] => wikk
[5] => HaM
[6] => Prezident
)
Возможно ли как нибуть просто имена оставить?
Pashkela
30.07.2009, 18:23
Забавный вопрос, а у тебя там что, ссылки в комплекте что ли?
ЗЫЖ Расшифруй что тебе надо, вроде у тебя и так массив из имен
Можно переменным присваивать значение элемента массива, можно просто сразу массив имплодить и писать в файл - правда, вопрос непонятен
$a = file_get_contents('text.txt');
preg_match_all('|<b>(.*)</b><br/><b><a href|',$a, $res);
print_r($res[1]);
Выводит вот такое
Array
(
[0] => banana jam
[1] => =777=
[2] => Amwe y
[3] => savruslan
[4] => wikk
[5] => HaM
[6] => Prezident
)
Как можно вывести только имена, таком порядке
banana jam
=777=
Amwe y
savruslan
.....
Мозги вообще отказываются работать
FireFenix
30.07.2009, 18:29
for ($i = 0; $i < count($res[1]); $i++)
{
echo($res[1][$i] . '<br>');
}
вместо
print_r($res[1]);
for ($i = 0; $i < count($res[1]); $i++)
{
echo($res[1][$i] . '<br>');
}
вместо
print_r($res[1]);
Спасибо :)
Я до этого так делал
for ($i = 0; $i < count($res); $i++)
{
echo$res[$i];
}
И думал, чёже не так :D
mailbrush
30.07.2009, 18:42
Для работы с массивами используется цикл foreach.
Pashkela
30.07.2009, 18:52
т.е. while не катит что ли уже?:))) while пошустрее, имхо
есть строка с тестом нефиксированной длинны
param=blablabla-sgd@34;
нужно получить все между param= и ;
Pashkela
03.08.2009, 16:33
<pre>
<?php
$a = "param=blablabla-sgd@34; param=blablabla111-sgd@34;ssdfgdfsg param=blablabla2222-sgd@34;";
preg_match_all('|param=(.*);|U',$a, $res);
print_r ($res[1]);
?>
</pre>
FireFenix Не лениться и делать полную регулярку. (r\d{1,3})(g\d{1,3})(b\d{1,3})
DeluxeS Системной командой:
Для прав drwxrwxrwx:
find /папка/от/которой/плясать -type d -perm -0777 -ls
Список папок:
find /папка/от/которой/плясать -type d -print > /файл/куда/записывать
Превед ночному пиплу! Схавайте,плз,такую версию:
if(preg_match_all('|<a href="readmsg?id=(.*?)">DarkForce</a></td>|',$r,$m)) {
foreach($m[1] as $result) {
echo "$result\r\n";
}
}
else {
echo "fuck you!";
}
Регулярка с mail.ru для письма,расположенного в папке Входящие.
DarkForce - это поле Автор письма(не мыло)
Исходное выглядит так:
<a href="readmsg?id=12510492610000000794">DarkForce</a></td>
айди я и хочу спарсить,чтобы потом в ссылку подставить.прег мач олл выбрал,чтобы одинаковые письма стричь.Кто поможет ? ( Отзывается ток на регулярку .* (((
Эх веня,веня не забываем про спец символы - ?
Вобшем что то типа такого
'#<a href="readmsg\?id=(\d+)"#is'
ххах))и вправду забыл.Попробую...пасип те,брат.Я прост ща от программинга отошёл,дела...и ремонт в квартире(.
ЗЫ: Регулярко РАБОТАЕТ.Чутка продвинулся.Терь вопрос: как проще сделать так(при отладке рнр скриптов),чтобы результат курл запроса выводился и не выводилсяю.когда мне нужно? Я поступил так: создал три функции - get,post и showget.Первые две шлют только гет или только пост запрос,но результата не показывают.Добавить хочу ещё showpost,исходя из вышеприведённой логики).Но кажется мне,что это решение не добротно(.Кто подскажет вариант попроще ?
тобы результат курл запроса выводился и не выводилсяю.когда мне нужно?
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
CURLOPT_RETURNTRANSFER: При установке этого параметра в ненулевое значение CURL будет возвращать результат, а не выводить его.
Если нужно вернуть результат в переменную а не выветси в браузер то :
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
Linuxoid
24.08.2009, 06:34
Надо выдернуть вот эту строчку из текстового файла: "work_codes/14479-26/1320143--347514.jpg". В названии картинки постоянно меняются цифры.
Linuxoid preg_match('#work_codes[^\']+#')
Не делай бота под героев, надо играть честно :D
Linuxoid
24.08.2009, 09:28
Расскажу ситуацию про бота для героев.
Играть в эту игру не буду. Зарегистрировался вчера с целью сделать бота. Просто это очень хороший пример, где можно автоматизировать некий процесс. Сам я только за честную игру, тем более в героях это мне и не надо.
По коду: Не работает... Вот примерный пример. :)
$preg = "</tr><tr><td class=wb><img src='work_codes/14480-26/1320143--347523.jpg' width=140 height=60 border=0 name=imgcode>";
$capchalink = preg_match('#work_codes[^\']+#', $preg, $img);
$img возвращает "Array". Саму ссылку на картинку не дергает.
Linuxoid Прежде чем что-то автоматизировать - почитайте мануалы, например.
$preg = "</tr><tr><td class=wb><img src='work_codes/14480-26/1320143--347523.jpg' width=140 height=60 border=0 name=imgcode>";
$capchalink = preg_match('#work_codes[^\']+#', $preg, $img);
var_dump($img);
// Или, если быть точным:
echo "<h1>{$img[0]}</h1>";
AngelOfFaith
25.08.2009, 18:26
как при помощи реврайта можно зделать чтобы всё запросы к сайту вида *.sait.ru отправлялись в одну папку, или прямо на скрипт? Например при запросе user.sait.ru браузер кидал на sait.ru/script.php?id=user , и при возможности что бы это делалось без доступа к конфам сервера
как при помощи реврайта можно зделать чтобы всё запросы к сайту вида *.sait.ru отправлялись в одну папку, или прямо на скрипт? Например при запросе user.sait.ru браузер кидал на sait.ru/script.php?id=user , и при возможности что бы это делалось без доступа к конфам сервера
что то типа этого:
if (preg_match("#(.+).(.+).ru #i", $_SERVER['HTTP_HOST'])) {
header("Location: http://sait.ru/script.php?id=user");
} else {
header("Location: http://sait.ru");
}
AngelOfFaith
25.08.2009, 19:00
что то типа этого:
if (preg_match("#(.+).(.+).ru #i", $_SERVER['HTTP_HOST'])) {
header("Location: http://sait.ru/script.php?id=user");
} else {
header("Location: http://sait.ru");
}
И куда мне поставить этот скрипт? Мне надо что то типа автоматического создания поддомена, думаю это надо реализовать через htaccess, вот тока без доступа к конфигам такое не получается, а если есть доступ то надо при каждом добавлении такого поддомена перегружать апач
login999
26.08.2009, 15:47
Мб кто поможет с регулярками в принципе раньше все норм было, сейчас вот вошёл в ступор, есть регулярка приблизительно такого вида :
r'''\<li class\=g\>\<h3 class\=r\>\<a href\=\"(.*?)\" class\=\l\>(.*?)\<\/a\>\<\/h3\>'''
Знающие люди мну поймут :)
Она собирает кортежи, состоящие из двух текстов
Мне нужно, чтобы жрались все данные, кроме тех в которых встречается определенное слово (оно встречается в первой части (.*?)) т.е что-то типа (.*?[^\w someword]) как я понимаю, подскажите как это реализовать
P.S. Язык - Python
P.P.S. Если точно, то это даже не слово, а часть слова
Короч, нужно отобрать все ссылки, кроме тех ссылок, в которых встречается определенное слово, т.е. из
http://vasya.com
http://vasya1.com
http://vasya2.com
http://vasya3.com
http://vasya_name.com
http://vasya_name2.com
http://vasya_name3.com
Нужно выбрать все ссылки, в которых НЕ встречается _name
Эту очистку в принцип то можно сделать и средствами самого Python, но хочется переделать регулярку...
У тебя в регулярке слишком много всего екранировано помоему.
r'''<li class=g><h3 class=r><a href=\"(.*?)\" class=l>(.*?)<\/a><\/h3>'''
login999
26.08.2009, 16:11
У тебя в регулярке слишком много всего екранировано помоему.
Да экранирование там в принципе не главное, просто регулярка хватает лишнее, выдирает как сами ссылки, так и целые блоки хтмл кода, они в принципе под нее подпадают...
Там по принципу "Лучше перебдеть чем недобдеть"
Pashkela
26.08.2009, 16:41
Конкретно для этого случая вот так примерно (на пыхе):
<pre>
<?php
$s = '
href="http://vasya.com "class
href="http://vasya1.com "class
href="http://vasya2.com "class
href="http://vasya3.com "class
href="http://vasya_name.com "class
href="http://vasya_name1.com "class
href="http://vasya_name2.com "class';
preg_match_all('#href="(http://vasya[^_].*) "class#Uis',$s,$z);
print_r($z);
?>
</pre>
целое слово-исключение как в регулярку поставить - хз
Т.е. скорее всего никак, только если вторая регулярка по уже полученному массиву из первой или в цикле (опять же потом) прогонять полученные результаты на предмет совпадения ненужного слова в строке в целом
Есть модРеврайт
RewriteRule ^([a-zA-Z0-9]+)/ index.php?action=$1
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/ index.php?action=$1&act=$2
Но когда я сделал такой код перестались открываться файлы допустим css/style.css img/image.gif
Как исправить?
gumplen2006
27.08.2009, 17:02
Здравствуйте. Хочу сделать следующую вещь: есть сайт, у которого много субдоменов, которые хранятся в папке subdomains/имя_субдомена. Я сделал следующий файл .htaccess:
RewriteCond %{HTTP_HOST} ^(.*)\.site\.com\.ua$
RewriteRule (.*)$ subdomaine/%1/$1
где %1 - должно быть имя субдомена, а $1 - имя открываемого файла.
Что-то не пашет так. Работает только, когда прописываю так:
RewriteCond %{HTTP_HOST} ^(.*)\.site\.com\.ua$
RewriteRule (.*)$ http://site.com.ua/subdomaine/%1/$1
Но в таком случае пользователь видит адрес http://site.com.ua/subdomaine/имя_субдомена/имя_файла
а я добиваюсь такого:
http://имя_субдомена.site.com.ua/имя_файла
В общем, помогите, кто чем может.
gumplen2006
27.08.2009, 17:07
Есть модРеврайт
RewriteRule ^([a-zA-Z0-9]+)/ index.php?action=$1
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/ index.php?action=$1&act=$2
Но когда я сделал такой код перестались открываться файлы допустим css/style.css img/image.gif
Как исправить?
Я вообще не спец, но, кажется, ты забыл добавить в регулярное выражение точку
Я вообще не спец, но, кажется, ты забыл добавить в регулярное выражение точку
Это ничего не меняет...
Byrger
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z0-9]+)/ index.php?action=$1
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/ index.php?action=$1&act=$2
gumplen2006 Так просто тут не получится, придется выкручиваться: RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?[^.]+\.site\.ru$
RewriteCond %{REQUEST_URI} !/subdomaine
RewriteRule ^(.+)$ %{HTTP_HOST}$1 [C]
RewriteRule ^(www\.)?([^.]+)\.site\.ru/?(.*) /subdomaine/$2/$3 [L]
AngelOfFaith Аналогично с предыдущим для вашего случая, только вместо subdomaine нужно будет писать путь до скрипта
FireFenix Побуквенное отрицание не прокатит, если перед ним стоит .* какой нить, и даже без него - привяжется со второй буквы отрицание
login999 Без условных подмасок перла - сложно, но возможноa = '''
href="http://vasya.com "class
href="http://vasya1.com "class
href="http://vasya2.com "class
href="http://vasya3.com "class
href="http://vasya_name.com "class
href="http://vasya_name1.com "class
href="http://vasya_surname1.com "class
href="http://vasya_familiya123123123.com "class
href="http://vasya_name2.com "class'''
print 'Пример с 3 словами', re.findall(r'''(http://(?!.*(?:surname|familiya|name2))(?(1)|.*)\.com)''' ,a)
print 'Пример с 2 словами', re.findall(r'''(http://(?!.*(?:surname|name2))(?(1)|.*)\.com)''',a)
ph1l1ster
01.09.2009, 00:20
del
ph1l1ster На перл сами переводите preg_match("~This links 666[\s\S]*?<td class="data">([^<]+)[\s\S]*?<td class="data">([^<]+)~msi",$in,$res);
Есть текст:
<td width="25%">
<img src="http://www.converse.com/media/product/102740/standard/102740_m.jpg"/>
<br />
<a href="/products/shoes/sales/102740" title="Pro Leather 1976">Pro Leather 1976</a><br />
Price: $70
</td>
<td width="25%">
<img src="http://www.converse.com/media/product/102741/standard/102741_m.jpg"/>
<br />
<a href="/products/shoes/sales/102741" title="Pro Leather 1976">Pro Leather 1976</a><br />
Price: $70
</td>
<td width="25%">
<img src="http://www.converse.com/media/product/508726/standard/508726_m.jpg"/>
<br />
<a href="/products/shoes/sales/508726" title="Angeles LE">Angeles LE</a><br />
Price: $55
</td>
Нужно его распарсить, что бы его получить массив, в котором значения, это то, что между <td width="25%"> и </td>
Нужен результат
<img src="http://www.converse.com/media/product/102741/standard/102741_m.jpg"/>
<br />
<a href="/products/shoes/sales/102741" title="Pro Leather 1976">Pro Leather 1976</a><br />
Price: $70
$sPattern = '|(.*)<td width="25%">(.*)</td>(.*)|s';
preg_match_all( $sPattern, $this->sContent, $aMatches );
print_r( $aMatches[2] );
Запоминает, тольк то, что в ПОСЛЕДНЕЙ я чейке
Нужно запомнить все ячейки
Спасибо!
#Wolf#
С preg_match_all и делал, смотри выше, я поправил
НЕ РАБОТАЕТ
2#Wolf#
<?php
$kod=file_get_contents('http://forum.antichat.ru/avatars/avatar52937.gif');
file_put_contents ('ava.gif',$kod );
?>
Pashkela
04.09.2009, 17:26
Есть текст:
<td width="25%">
<img src="http://www.converse.com/media/product/102740/standard/102740_m.jpg"/>
<br />
<a href="/products/shoes/sales/102740" title="Pro Leather 1976">Pro Leather 1976</a><br />
Price: $70
</td>
<td width="25%">
<img src="http://www.converse.com/media/product/102741/standard/102741_m.jpg"/>
<br />
<a href="/products/shoes/sales/102741" title="Pro Leather 1976">Pro Leather 1976</a><br />
Price: $70
</td>
<td width="25%">
<img src="http://www.converse.com/media/product/508726/standard/508726_m.jpg"/>
<br />
<a href="/products/shoes/sales/508726" title="Angeles LE">Angeles LE</a><br />
Price: $55
</td>
Нужно его распарсить, что бы его получить массив, в котором значения, это то, что между <td width="25%"> и </td>
Нужен результат
$sPattern = '|(.*)<td width="25%">(.*)</td>(.*)|s';
preg_match_all( $sPattern, $this->sContent, $aMatches );
print_r( $aMatches[2] );
Запоминает, тольк то, что в ПОСЛЕДНЕЙ я чейке
Нужно запомнить все ячейки
Спасибо!
<pre>
<?php
$a = '<td width="25%">
<img src="http://www.converse.com/media/product/102740/standard/102740_m.jpg"/>
<br />
<a href="/products/shoes/sales/102740" title="Pro Leather 1976">Pro Leather 1976</a><br />
Price: $70
</td>
<td width="25%">
<img src="http://www.converse.com/media/product/102741/standard/102741_m.jpg"/>
<br />
<a href="/products/shoes/sales/102741" title="Pro Leather 1976">Pro Leather 1976</a><br />
Price: $75
</td>
<td width="25%">
<img src="http://www.converse.com/media/product/508726/standard/508726_m.jpg"/>
<br />
<a href="/products/shoes/sales/508726" title="Angeles LE">Angeles LE</a><br />
Price: $55
</td>';
$sPattern = '|(.*)<td width="25%">(.*)</td>(.*)|Uis';
preg_match_all( $sPattern, $a, $aMatches );
print_r($aMatches[2]);
?>
</pre>
Pashkela
Спасибо!
Блин полный бред, у меня такое же выражение было , не работало :)
Я уже начал волноватся :)
`U` в нижнем регистре написал
Pashkela, СПАСИБО!!!
Как написать htaccess, чтобы при обращении к указанным мной несуществуемым папкам редиректило на скрипт, на другом серваке с передачей имени запрошенной папки? Htaccess не в корне должен быть, а в подпапке.
Например,
при обращении к
http://server.com/papka/lala1/?id=4
редиректило на http://server2.com/papka2/script.php?data=lala1
При обращении к
http://server.com/papka/lala2/?id=9
на
http://server2.com/papka2/script.php?data=lala2
Где, papka и papka2 - реально существующие папки
и тд.
Сделал так
RedirectMatch (\.lala1) http://server2.com/papka2/script.php?data=lala1
RedirectMatch (\.lala2) http://server2.com/papka2/script.php?data=lala2
Редиректит, но знак вопроса урленкодится почему то, то есть редиректит на
http://server2.com/papka2/script.php%3Fdata=lala1,
а не на
http://server2.com/papka2/script.php?data=lala1
Почему так?
попугай RewriteEngine On
RewriteRule ^/papka/(.+)/ http://server2.com/papka2/script.php?data=$1 [R,L]
Или
RewriteEngine On
RewriteBase /papka
RewriteRule ^(.+)/?.* http://server2.com/papka2/script.php?data=$1 [R,L]
Ага, спасибо. Сделал так
RewriteEngine On
RewriteRule ^lala1/(.*) http://server2.com/papka2/script.php?data=lala1 [R,L]
Работает
Linuxoid
06.09.2009, 20:15
А как регуляркой выразить md5 хеш? То есть на странице находится много md5 хешей маски [a-f0-9]{32}... Надо их все собрать...
Регулярки пытаюсь осваивать, но очень много вопросов пока...
wildshaman
06.09.2009, 20:26
<?php
$str="тут страница";
preg_match_all("|([a-f0-9]{32})|is", $str, $ret);
print_r($ret);
?>
imajo.ati
06.09.2009, 22:37
как из текста удалить все комментарии вида /* */ ?
комментарии могут быть такими: /** /* /*** * /*ф* ***/
кое-что уже пробовал:
~/\*{2,}/~
~/\*+(.*?)*\*+/~s
первое удаляет это: /****/ второе удаляет все остальные случаи..
но как-то я не совсем уверен в 100% работоспособности
может кто подскажет способ получше?
и объясните пожалуйста, что означает ".*?" ?
imajo.ati preg_replace('#\s/\*[\s\S]*\*/\s#U','',$str);
http://ru.wikipedia.org/wiki/Regexp - читать раздел "жадная и ленивая квантификация"
imajo.ati
07.09.2009, 19:13
imajo.ati preg_replace('#\s/\*[\s\S]*\*/\s#','',$str);
http://ru.wikipedia.org/wiki/Regexp - читать раздел "жадная и ленивая квантификация"
<?php
$str = '/* hello */ world! /* 123 */';
echo preg_replace('#\s/\*[\s\S]*\*/\s#','',$str);
?>
твой регэксп не работает, не удаляет ничего.
за жадную квантификацию спасибо, уже читаю.
imajo.ati Перед и после - желательно чтобы стоял пробельный символ:
$str = ' asddasd asd asd sd sads ad asdas a /* hello */ world! /* 123 */ asds adsa dasdas das';
echo preg_replace('#\s/\*[\s\S]*?\*/\s#','',$str);
Но можно и без него ессесн:
$str = '/* hello */ world! /* 123 */';
echo preg_replace('#/\*[\s\S]*?\*/#','',$str);
FireFenix
07.09.2009, 19:40
<?php
$text = '
/*
абабаббабаб
*/
тут код проги
/** ещё один камент **/
текст
/***
ещё один глупый камент
***/
здесь могла быть ваша реклама!';
$result = preg_replace('/(\/\*.*?\*\/)*/ims', '', $text);
echo($result);
?>
мой вариант +)
astrologer
07.09.2009, 23:11
может кто подскажет способ получше? Тебе нужен парсер. Если, конечно, в твои планы не входит бить код, потому что регулярные выражения всё равно будут фейлить.
Пример:$pictures = glob('images/*');
/* Комментарий */
process($pictures);
imajo.ati
08.09.2009, 10:05
astrologer,
спасибо за замечание, я уже был в курсе этого, когда просил регулярное выражение.
в планы входит сначала заменить все строки в тексте на что-то такое:
%STRING_000001_(md5_заменённой_стро и)_(случайное_число_прохода _парсера)%
а потом удалить все комментарии.
может быть выскажешь свои мысли по этому поводу? будет ли это работать?
astrologer
09.09.2009, 01:10
в планы входит сначала заменить все строки в тексте на что-то такое:
%STRING_000001_(md5_заменённой_стро и)_(случайное_ число_прохода_парсера)%
а потом удалить все комментарии. Не получится, причём по той же причине (выяснение которой, как всегда, остается читателю).
P.S. /(\/\*.*?\*\/)*/ims#\s/\*[\s\S]*?\*/\s#~/ (?:[^*]++| (?! ))* /~
KaMiKadZe
11.09.2009, 16:06
$str = "http://localhost/#qwerty=text#aaa22";
preg_match_all ('/=(.*)#aaa(.*)/',$str,$arr);
Даст
text
22
Но если строка $str = "http://localhost/#qwerty=text";
Ничего не выдаст, как сделать так чтобы выдавало? =)
FireFenix
11.09.2009, 16:16
$str = "http://localhost/#qwerty=text#aaa22";
preg_match_all ('/=(.*)#aaa(.*)/',$str,$arr);
Даст
text
22
Но если строка $str = "http://localhost/#qwerty=text";
Ничего не выдаст, как сделать так чтобы выдавало? =)
<?php
$str = "http://localhost/#qwerty=text";
preg_match_all ('/=(.*)#aaa(.*)|=(.*)/',$str,$arr);
print_r($arr);
?>
$match[1] и $match[2] - где 2 аргумента
$match[3] - где 1 аргумент
$test = ':0.4.5.14.25:1.18.28:2.3.22.31:6.13.15.20.24.27:7 .30:8.9.19.21:10.12.17:11.26:16:23:29:';
Необходимо вытащить все вхождения:
:цыферки:
Получаеться только через 1 :(
// Неактуально,но хочеться увидеть регексп,для общего.
FireFenix
12.09.2009, 23:53
$test = ':0.4.5.14.25:1.18.28:2.3.22.31:6.13.15.20.24.27:7 .30:8.9.19.21:10.12.17:11.26:16:23:29:';
Необходимо вытащить все вхождения:
:цыферки:
Получаеться только через 1 :(
// Неактуально,но хочеться увидеть регексп,для общего.
<?php
$test = ':0.4.5.14.25:1.18.28:2.3.22.31:6.13.15.20.24.27:7 .30:8.9.19.21:10.12.17:11.26:16:23:29:';
$regex = '/\:([\.\d]+)/';
preg_match_all($regex, $test, $match);
print_r($match);
?>
p.s. поправил. Спасибо Gift =)
или вначале убираем с концов ':' и через explode(':', $test);
m0Hze $str = ':0.4.5.14.25:1.18.28:2.3.22.31:6.13.15.20.24.27:7 .30:8.9.19.21:10.12.17:11.26:16:23:29:';
preg_match_all('#(?<=:)[^:]+(?=:)#si',$str,$res);
var_dump($res);
// Или если обрамляющего текста нет, то вообще так:
preg_match_all('#[^:]+#si',$str,$res);
var_dump($res);
FireFenix Опять таки, ваша регулярка будет через раз одно числа получать
Сломаем мозг вместе.
имеем страничку: http://www.google.com/search?hl=en&q=antichat
Нужно получить все полученые результаты(ссылки,с тайтлами).
Если загнать пример в переменную - тобиш 1 сцылку,то регулярка проходит,но со страницы я немогу выдрать ничего.
Использую простую:
preg_match_all('#<a href="(.*)" class="l">(.*)</a>#',$text,$match);
Все время пустая.Уже испробывал все известные мне флаги,но результата - 0.
Pashkela
13.09.2009, 21:50
Не очень понял, про что ты, но мой скрипт валяется либо в полезных скриптах, либо еще где:
<?php
// Парсер url после выдачи гугла по запросу
$handler=fopen('log.txt','w'); // если не хотим терять старые данные - то "a+"
$limit = 0;
$zapros = "antichat"; // Наш запрос для поиска
$page_start = 0; // Стартовая страница из расчета 100 результатов выдачи на страницу
$page_end = 200; // Последняя страница из расчета 100 результатов выдачи на страницу
function parse_serp($engine, $query, $limit)
{
if ($limit<100) {$request = 'http://www.google.com/ie?hl=ru&num=100&start=' . $limit. '&lr=&q='.urlencode(trim($query));}
if ($limit>=100) {$request = 'http://www.google.com/ie?q=' . urlencode(trim($query)) . '&num=100&hl=ru&lr=&start=' . $limit . '&sa=N';}
$pattern = '/<a title="(.*)" href=(.*)>(.*)<\/a>/isU';
$result = file_get_contents($request);
if(preg_match_all($pattern, $result, $matches))
{
for ($i=0; $i<count($matches[0]); $i++)
{
$link = $matches[2][$i];
$serp[] = $link;
}
}
return $serp;
}
for ($i=$page_start;$i<=$page_end;$i++)
{
$result = parse_serp("google", $zapros, $i);
$log = implode("\r\n",$result);
if($handler) {fwrite($handler,$log);}
$i=$i+100;
if ($i>100) {$i=$i-1;}
}
fclose($handler);
echo "Все данные были сохранены в log.txt";
?>
На текущий момент есть многопоточный и с поддержкой прокси. Стоимость 10 000$
PS: Сорри, если недопонял вопрос
wildshaman
13.09.2009, 22:04
2мохзе:
<?php
$t=file_get_contents("http://www.google.com/search?hl=en&q=antichat");
preg_match_all('|<h3 class=r><a href="(.*?)" class=l>(.*?)</a>|', $t, $out);
for ($i=0; $i<count($out[1]); $i++)
echo $out[1][$i]." - ".$out[2][$i]."<br>";
?>
Patronik
15.09.2009, 17:58
есть строка 158 разних слов не считаю символи пунктуации
надо разбить ее на строки по 6 слов! и записать в масив
Architek86
18.09.2009, 22:41
дан код:
<table>бла-бла a1a1a1 бла-бла</table><table>бла-бла a2a2a2 бла-бла</table><table>бла-бла a3a3a3 бла-бла</table>.............
как найти и удалить, к примеру, <table>бла-бла a2a2a2 бла-бла</table>
т.е. preg_replace($pattern,'',$content)
$pattern чему будет равен?
Думал, так сделать: <table>(.*)a2a2a2(.*)</table>, но тогда сюда попадает ведь весь текст.
тебе надо удлаить a2a2a2a2? или то что сбоку?
Architek86
18.09.2009, 23:21
надо удалить всю таблицу, содержащую в себе a2a2a2a2 (например), т.е. от <table> до </table> включая и эти теги.
дан код:
<table>бла-бла a1a1a1 бла-бла</table><table>бла-бла a2a2a2 бла-бла</table><table>бла-бла a3a3a3 бла-бла</table>.............
как найти и удалить, к примеру, <table>бла-бла a2a2a2 бла-бла</table>
т.е. preg_replace($pattern,'',$content)
$pattern чему будет равен?
Думал, так сделать: <table>(.*)a2a2a2(.*)</table>, но тогда сюда попадает ведь весь текст.
Cтавить жадность поменьше e.g.:
#<table>.*a2a2a2.*</table>#Us
Patronik
22.09.2009, 13:15
Написал выражуху для поиска url в тексте
$pattern = "/^[http://www|www]+(\.[a-z])+(\.[a-z])*$/";
$find = preg_match($pattern, $text);
А пхп выдает мне
Warning: preg_match(): Empty regular expression in D:\Program Files\PHP Expert Editor
4.3\phpF.tmp on line 9
Что не так?
Pashkela
22.09.2009, 13:40
Ошибка синтаксиса в регулярном выражении - когда в начале и в конце регулярки "/", то надо экранировать все спецсимволы, т.е. "http:\/\/", или сделать так:
<pre>
<?php
@ini_set("display_errors","1");
$text = 'wetwgsdg http://site.ru sdgdsfgs34564325 http://www.site.ru/index.php ывпывапып www.rambler.ru';
$pattern = "#(http://[^\s]+)|(www.[^\s]+)#";
preg_match_all($pattern, $text, $res);
print_r ($res[0]);
?>
</pre>
Patronik
22.09.2009, 13:51
Спасибо! Понял!
Patronik
22.09.2009, 22:19
if( preg_match("#(http://[^\s]+)|(www.[^\s]+)#i", $line, $resalt) )
{
$line = preg_replace("#(http://[^\s]+)|(www.[^\s]+)#i", '<a href="'.$resalt[0].'">'.$resalt[0].'</a>', $line);
}
Подскажите как нормальную подсветку урл сделать. Делаю так как напсиал подчвечивает только урл начинающиеся с http а если начинаеться с www то некоректно работает.
Неправельно,делай сначало поиск,затем просто:
preg_raplace($match[1],'<a href="'.$match[1].'">lolol</a>,$text);
В цыкле.
ребята, что нужно добавить в .htaccess чтобы и http://site.com/link.php и http://site.com/link/ были одним и темже ?
и ещё вопрос.
я постараюсь максимально понятно изложить свою мысль. как правильно составить .htaccess чтобы при запросе неверной страницы (404) (http://site.com/download/drama.mp3.html) небыло редиректа на 404.пхп а писало File "file drama.mp3 not found"
тоесть подставить можно заместо drama.mp3 всё что угодно, и если файла нету - выплёвывает что такого файла нету
zifanchuck
25.09.2009, 23:51
а как составить регулярку чтобы из
http://getdle.org.ru/uploads/posts/2009-09/thumbs/1253897356_1.gif
получить
1253897356_1.gif
пробовал примерно так #\/(.*)\.jpg#iU
получаю
/getdle.com/uploads/posts/2009-09/thumbs/1252870317_full
ссылки разные будут так что нужен какойто универсайльный... надеюсь на помощь
а как составить регулярку чтобы из
http://getdle.org.ru/uploads/posts/2009-09/thumbs/1253897356_1.gif
получить
1253897356_1.gif
пробовал примерно так #\/(.*)\.jpg#iU
получаю
/getdle.com/uploads/posts/2009-09/thumbs/1252870317_full
ссылки разные будут так что нужен какойто универсайльный... надеюсь на помощь
http://getdle.org.ru/uploads/posts/2009-09/thumbs/1253897356_1.gif
пробовал примерно так #\/(.*)\.jpg#iU
а как составить регулярку чтобы из
http://getdle.org.ru/uploads/posts/2009-09/thumbs/1253897356_1.gif
получить
1253897356_1.gif
пробовал примерно так #\/(.*)\.jpg#iU
получаю
/getdle.com/uploads/posts/2009-09/thumbs/1252870317_full
ссылки разные будут так что нужен какойто универсайльный... надеюсь на помощь
#([^/]*)$#
mailbrush
26.09.2009, 00:01
Вот такой вопрос... Почему в регулярках чаще всего юзают #([^/]*)$# Что-то типа такого... Я знаю синтаксис, здесь - всё, кроме слеша. Ведь можно сложить полный регекс...
zifanchuck
26.09.2009, 00:03
#([^/]*)$#
спс
http://getdle.org.ru/uploads/posts/2009-09/thumbs/1253897356_1.gif
пробовал примерно так #\/(.*)\.jpg#iU
туплю(
.::BARS::.
28.09.2009, 16:21
есть страницы
site.ru/p/123
site.ru/p/124
site.ru/p/125
site.ru/p/126
ну и так далее....
я обращаюсь(точнее хочу обратиться) к ним как site.ru/?a=p&b=123 и т.д.
как это сделать... что бы при втором варианте иметь ответ такой же как и в первом!?
есть страницы
site.ru/p/123
site.ru/p/124
site.ru/p/125
site.ru/p/126
ну и так далее....
я обращаюсь(точнее хочу обратиться) к ним как site.ru/?a=p&b=123 и т.д.
как это сделать... что бы при втором варианте иметь ответ такой же как и в первом!?
если я правильно тебя понял..
.htaccess
RewriteEngine On
RewriteRule ^p/(\d+) index.php?a=p&b=$1
.::BARS::.
28.09.2009, 23:39
ага.... только что то не сработало...
mailbrush
28.09.2009, 23:45
ага.... только что то не сработало...
Все работает, проверено :)
Проверь, установлен ли у тебя mod_rewrite...
Нужно две универсальные регулярки, которые без ошибок будут искать в тексте ссылки и имейл адреса.
Pashkela
29.09.2009, 14:55
mail:
/[\w\-]+@[\w\-]+.\w+.\w+/
url:
#(http://[^\s]+)|(www.[^\s]+)#
Pashkela
#(http://[^\s]+)|(www.[^\s]+)#
а если ссылка вида ? =\
<a href="/vote/">
Творя регулярка для мыл, результат:
$str = 'qwqwqw-qw.wqwq@wqwqw.wqwq.wq.wq';
preg_match('/[\w\-]+@[\w\-]+.\w+.\w+/',$str,$matches);
print_r($matches);
Array ( [0] => wqwq@wqwqw.wqwq.wq )
Некатит
ЗЫ все неактуально, написал сам.
<td><div class="block">
<img src="bg.gih" hspace="5">
content
<li><ul>asdfasdkajsdf
</div>
</td>
нужно извлечь содержание в тегах див, ничего не выходит
$text = ' <td><div class="block">
<img src="bg.gih" hspace="5">
content
<li><ul>asdfasdkajsdf
</div>
</td> ';
preg_match('#<div class=\"block\">(.*)<\/div>#isU',$text,$match);
print_r($match);
Если я правильно понял
Insane bboy
14.10.2009, 02:04
помогите с регулярным выражением нужно парсить со страницы данные об мыльном аккаунте
данные в таком виде:
mail1@mail.ru-pass1
mail2@mail.ru-pass2
данных много, много и мусора, хотелось бы универсальную регулярку которая не только майлру акки парсила бы, может кто помочь?
На скорую руку, помоему вполне робит
<?php
$str = '
mail1@mail.ru-pass1
mail2@mail.ru-pass2
';
preg_match_all('#(([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6})\-(.*?)#Ui',$str,$e);
$count = count($e[1]);
for ($i=0;$i < $count; $i++) {
echo $e[1][$i].';'.$e[5][$i].'<br>';
}
?>
crazy~driver
14.10.2009, 20:35
подскажите, где ошибка?
preg_match("@http://site.ru/[a-z]{10}\.php@",$str)
регулярка соответствует урлам типа
http://site.ru/qwrtyuiomp.php
http://site.ru/tipmjfvsdt.php
http://site.ru/cnkondctio.php
Предполагалось-то что получить?
подскажите, где ошибка?
слэши тоже нужно екранировать, тоесть:
preg_match("@http:\/\/site\.ru\/([a-z]{10})\.php@",$str,$matches);
print_r($matches);
crazy~driver
14.10.2009, 21:47
слэши тоже нужно екранировать, тоесть:
preg_match("@http:\/\/site\.ru\/([a-z]{10})\.php@",$str,$matches);
print_r($matches);
Все равно не работает
_________________________
файл deystvie.txt
имя юзера - admin
ip юзера - 127.0.0.1
линк - http://document.info/upd.php
имя юзера - admin
ip юзера - 127.0.0.1
линк - http://document.info/del.php
ip юзера - 127.0.0.1
линк - http://document.info/favicon.ico
файл fuction.php
function versiya()
{
$file=fopen("deystvie.txt","r");
if ($file)
{
while(!feof($file))//кртуим файл
{
$str = fgets($file);
if (preg_match("@http:\/\/document\.info\/([a-z])\.php@",$str))
{
echo "найдены";
}
}
fclose ($file);}
}
versiya();
Требуется проверять урлы чтобы был сначала адрес сайта, затем любая последодвательность латинских букв до 10 символов, затем точка, и за ней расширение php
preg_match("/\@http\:\/\/site\.ru\/([a-z]{10})\.php\@/",$str,$matches)
так попробуй
crazy~driver
14.10.2009, 22:06
preg_match("/\@http\:\/\/site\.ru\/([a-z]{10})\.php\@/",$str,$matches)
так попробуй
не все равно не ищет
у мя тока работает
(preg_match("@http://document.info/[a-z].@",$str))
а как добавляю php сразу результат тухнет
@^http://[a-z0-9-]+\.(ru|net|com|org|info)/[a-z]{10}\.php$@
Список доменных имен верхнего уровня можете расширить на свое усмотрение либо замените его на [a-z]+
crazy~driver
preg_match('|http://.+/(.+)\.php|Ui',$str,$code);
print_r($code[1]);
слэши тоже нужно екранировать, тоесть:
preg_match("@http:\/\/site\.ru\/([a-z]{10})\.php@",$str,$matches);
print_r($matches);
а понту с того ведь у тебя не стоит:
"/http:\/\/site\.ru\/([a-z]{10})\.php/"
Insane bboy
22.10.2009, 01:04
помогите с регуляркой:(
в тексте каждый параграф я отделил с помощью коментов <!--1-->тут ячейка таблицы с текстом и тд итд<!--1_--><--2-->тут другая ячейка с текстом<!--2-->
тескта в ячейках много, как можно загнать параграф в переменую то есть от <!--чифра-->до<!--цифра_--> включай и эти теги каментов?
пробывал так
if(preg_match('#<!--1-->(.*?)<!--1_-->#',$info,$matches))
но что то нифига не помогает:(
здраствуйте форумчани, помогите, а то я уже полностю задолбался...
есть строка
<!-- актеры фильма -->
<td style="background: url(/images/bg-lenta.gif) no-repeat 0px 95%; width: 260px; height: 100%; vertical-align: top">
<table style="width: 100%; height: 100%; border: none" cellspacing=0 cellpadding=0>
<tr><td style="height: 31px; text-align: right; border: none; padding-right: 10px"><span style="color: #f60">В главных ролях:</span></td></tr>
<tr><td style="height: 10px"><br /></td></tr>
<tr><td style="height: 100%; vertical-align: top; padding-right:10px">
<table style="width: 100%; border: none" cellspacing="0" cellpadding="0">
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/6317/" class="all">Пол Уокер</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/11437/" class="all">Вин Дизель</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/2318/" class="all">Мишель Родригес</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/47679/" class="all">Джордана Брюстер</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/29366/" class="all">Рик Юн</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/22695/" class="all">Чэд Линдберг</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/47429/" class="all">Джонни Стронг</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/16059/" class="all">Мэтт Шульце</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/532/" class="all">Тед Левайн</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/12801/" class="all">Джа Рул</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/19/film/666/" class="all">...</a></td></tr>
<tr><td><br><br><br></td></tr>
<tr><td align="right" class="desc-title" style="border:0px;padding:0px">Роли дублировали:</td></tr>
<tr><td><br></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/1806292/" class="all">Дмитрий Кошмин</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/1053232/" class="all">Алексей Мясников</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/1672422/" class="all">Татьяна Весёлкина</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/1650216/" class="all">Елена Ивасишина</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/4/people/224608/" class="all">Борис Шувалов</a></td></tr>
<tr><td style="vertical-align: top; height: 15px" align=right><a href="/level/19/film/666/" class="all">...</a></td></tr>
</table>
</td></tr>
</table>
</td></tr>
<!-- /актеры фильма -->
с нее надо парсить только актеров, я писал так что бы парсило, но оно парсило и тег кто дублировал роли. как сделать что бы только актеров?
2 alwex
<?php
preg_match('#<a href="/level/4/people/[1-9]{1,5}/" class="all">(.*[а-яА-Я]+)</a></td></tr>#Ui',$str,$code) ;
print_r($code[1]);
?>
хех, я же сказал что так как ты ща вот сделал будет брать и тех кто дублировал... надо ТОЛЬКО АКТЕРОВ
хех, я же сказал что так как ты ща вот сделал будет брать и тех кто дублировал... надо ТОЛЬКО АКТЕРОВ
ты хорошо подумал?
я проверил твоё, не пашет как надо, парсит все ссылки... даже не только актеров
preg_match ('/В главных ролях:(.+?)Роли дублировали:/s', $page, $m);
preg_match_all ('/<a\s+href="\/level\/\d+\/people\/\d+\/".+?>(.+?)<\/a>/', $m[1], $m);
print_r ($m[1]);
Подскажите mod_rewrite,чтобы при 404 был редирект на Index
rushter
Вариант не через мод_реврайт,а через редактирование файла ошибки!Если есть доступ,просто можно в нем сделать редирект!Извини что не по теме,просто как вариант предложил!
Pashkela
24.10.2009, 20:33
ErrorDocument 404 /index.php
mailbrush
24.10.2009, 20:34
Обязательно mod_rewrite? Можно просто:
ErrorDocument 404 /index.php
Обязательно mod_rewrite?
да
RewriteRule ^.*$ /index.php [L,QSA]
<tr bgcolor="#FFF8E7">
<td valign='top' colspan="1"><img src='images/question.gif' height='18' width='66'><br>
Что вы хотите?<br> </td>
</tr>
Как спарсить вопрос *Что вы хотите?* Перепробовал уже всё,даже сокращал...бесполезно.Испол ьзовал в качестве ограничителей |
Пасип,а если это на рнр/нтмл странице встречается среди другого англо-русского ? Можно применить этот шаблон ?
Dark_Scorpicore
01.11.2009, 18:11
Здраствуйте, проблема такая:
есть регесп для нахождения чисел на странице [0-9]+, но на странице не всегда будут только числа, возможно еще и числа со словами, поэтому нужно дополнить шаблон поиска, чтобы было, например, так
"/[0-9]+ИЛИ[0-9]+[a-zA-ZА-Яа-я]/i"
Как мне вот это самое "ИЛИ" записать?
Спасибо
Dark_Scorpicore
01.11.2009, 18:26
L I G A, низкий Вам поклон за помощь. :)
Ловите плюсик к репе)
есть файл в нем исходный код страницы, в нем есть строка "asdasmd,as.dmas.,dma Path=nijniy text asdajdklsjdkalda" мне нужно взять только nijniy text
Спс
есть файл в нем исходный код страницы, в нем есть строка "asdasmd,as.dmas.,dma Path=nijniy text asdajdklsjdkalda" мне нужно взять только nijniy text
Спс
asdasmd,as.dmas.,dma Path=nijniy text asdajdklsjdkalda"
Даже мя извращенная фантазия,не может придумать,что это может быть.Такое отпарсить дстаточно сложно.Покажи пример,а не случайно на тыканые клавиши.
$resurce="
Text Privet Bla Bla Bla
Masha=Pasha;Petya=durak;Path=/Session/85421-2jT7ZUIA6axKZm9gK2Qu-jizencw
TyT HTML Text =)"
Вот мне нужно парсить /Session/85421-2jT7ZUIA6axKZm9gK2Qu-jizencw =\
Кукисы чтоле? омфг.
preg_match('#Path=(.*);#isU',$text,$match);
Спасибо огромное )
; - Не нужно было, заменил на \n все окей )))
Спасибо
Помогите с регуляркой.
Нужно в ХТМЛ документе убрать все теги в том числе и ява скрипты strip_tags не подходит т.к. удаляет только теги начала и конца ява скрипта а не то что внутри него.
Спасибо.
$text = '<ololo><title>Hello<br>llbotyaebalvrot<html>';
$replace = preg_replace('#<(.*)>#isU', '', $text);
echo $replace
Что-то вроде?
Shadow_p1raT
02.11.2009, 18:12
m0Hze,прочитай внимательно его пост.
Gin держи
<?php
function strip_javascript($filter) {
$filter = preg_replace("/<script.*>.*<\/script>/iUs", "", $filter);
return $filter;
}
?>
Сначалa обработаешь этой функцией а потом уже strip_tags();
ЗДраствуйте еще раз к вам за помощью
Есть текст.
в нем встречаются такие бяки
текст текст текст текст текст текст текст текст
текст текст текст текст текст текст текст текст
<td >
<a href='goTo'>username@mail.ru</a>
</td>
<td align="RIGHT">
<a href='goTo'>77.220.77.220</a>
</td>
<td >
<a href='goTo'>username2@mail2.ru</a>
</td>
<td align="RIGHT">
<a href='goTo'>74.2250.717.2220</a>
</td>
текст текст текст текст текст текст текст
текст текст текст текст текст текст текст
Собственно мне нужно взять только мыла? )) хелп плииииз )
(\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,6})
Pashkela
02.11.2009, 20:18
<pre>
<?php
$text = "
текст текст текст текст текст текст текст текст
текст текст текст текст текст текст текст текст
<td >
<a href='goTo'>username@mail.ru</a>
</td>
<a href='goTo'>77.220.77.220</a>
</td>
<td >
<a href='goTo'>username2@mail2.ru</a>
</td>
<a href='goTo'>74.2250.717.2220</a>
</td>
текст текст текст текст текст текст текст
текст текст текст текст текст текст текст";
preg_match_all('/[\w\-]+@[\w\-]+.\w+.\w+/', $text, $out);
print_r($out);
?>
</pre>
есть
<input type='text' name='n1' value=''>
<input type='text' name='n2' value='123'>
<input type='text' name="n3">
нужно вытащить именна\значения полей.
делаю
<input.*name=[/\"/'](.+)[/\"/'].*(value=[/\"/'](.+)[/\"/'])*.*>
не вытаскивает значения, если
<input.*name=[/\"/'](.+)[/\"/'].*(value=[/\"/'](.+)[/\"/'])+.*>
то не берёт имена, если нет значения.
втф?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot