Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

07.03.2009, 22:21
|
|
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме: 1754802
Репутация:
380
|
|
Сообщение от Велемир
Эм...так задумано ?
Код:
$x = 'fuckinstrin';
if(preg_match('#[s]....#',$x,$matches)) {
print_r($matches);
}
Сначала проверяется каждый символ по куску шаблона [s].Совпал один символ.Затем идут точки,которые соответствуют любому символу.Так почему проверка начинается не с начала,а с того места,где произошло первое совпадение ? Шаблон сработал правильно,но почему-то не так,как я ожидал))(Ожидалось sfuck)
Ну во первых [] - во сновном самое логичное применять для символьго класса, у тебя 1 символ,
во вторых если ..... - жесть, {4} то есть так
#s.{4}#
, ну и в третих у тебя никак не будет sfuck потому как у тебя я не наблюдаю ПЕРЕД fuckinstrin s , у тебя будет strin, регулярное выражения будет обрабатываться с начало, слева на право без возратов назад.
|
|
|

07.03.2009, 22:31
|
|
Banned
Регистрация: 19.06.2006
Сообщений: 1,239
Провел на форуме: 1469161
Репутация:
142
|
|
Сообщение от PaCo
, регулярное выражения будет обрабатываться с начало, слева на право без возратов назад.
Это всё,что я хотел узнать  )).Что касается ....,то это было для примера.Конечно же,целесообразнее использовать .{4},но ведь ....=.{4},не так ли ? Также,как и [символ] = символ.По крайней мере,я отличий не наблюдал.
ЗЫ: Диву даюсь,что так быстро получил ответ на вопрос   .Лови плюсики)))
|
|
|

08.03.2009, 00:17
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
А теперь я 
Хотя я заранее знаю ответ на свой вопрос.
имеем например;
PHP код:
$new = preg_replace('#old(.*)#','new(тут то что было в (.*)',$str)';
нереал?
|
|
|

08.03.2009, 00:26
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
m0Hze
PHP код:
$new=preg_replace('~old(.*)~','new$1',$str);
|
|
|

08.03.2009, 21:21
|
|
Познающий
Регистрация: 03.06.2007
Сообщений: 31
Провел на форуме: 163026
Репутация:
3
|
|
Есть такой html код
Код:
<th width="80">
</th>
<th width="125" style='white-space: nowrap;'>
<a style="cursor:pointer" onclick="javascript:doit(6, 1, 61, 9, 1, 1);"><img src="http://uni9.ogame.ru/evolution/img/e.gif" border="0" alt="Шпионаж" title="Шпионаж" /></a>
<a href="index.php?page=writemessages&session=e104001d5a6b&messageziel=142200"><img src="" border="0" alt="Написать сообщение" title="Написать сообщение" /></a>
<a href="index.php?page=buddy&session=e104001d5a6b&action=7&buddy_id=142200"><img src="http://uni9.ogame.ru/evolution/img/b.gif" border="0" alt="Предложение подружиться" title="Предложение подружиться" /></a>
</th>
</tr>
<tr>
<th width="30">
<a href="#" tabindex="9" >10</a>
</th>
<th width="30">
<a style="cursor:pointer" onmouseover='return overlib("<table width=240><tr><td class=c colspan=2 >Планета amber [1:61:10]</td></tr><tr><th width=80 ><img src=http://uni9.ogame.ru/evolution/planeten/small/s_wasserplanet01.jpg height=75 width=75 /></th><th align=left ><a href=# onclick=doit(6,1,61,10,1,1) >Шпионаж</a><br><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=1 m>Атака</a><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=5 >Удерживать</a><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=3 >Транспорт</a><br /></th></tr></table>", STICKY, MOUSEOFF, DELAY, 750, CENTER, OFFSETX, -40, OFFSETY, -40 );' onmouseout="return nd();">
<img src="http://uni9.ogame.ru/evolution/planeten/small/s_wasserplanet01.jpg" height="30" width="30"/></a>
</th>
<th width="130" style='white-space: nowrap;'>
amber</th>
<th width="30" style='white-space: nowrap;'>
</th>
<th width="30">
</th>
<th width="150">
<a style="cursor:pointer" onmouseover="return overlib('<table width=240 ><tr><td class=c >Игрок amberios. Место в рейтинге - 1264</td></tr><th><table><tr><td><a href=index.php?page=writemessages&session=e104001d5a6b&messageziel=143212 >Написать сообщение</a></td></tr><tr><td><a href=index.php?page=buddy&session=e104001d5a6b&action=7&buddy_id=143212 >Предложение подружиться</a></td></tr><tr><td><a href=index.php?page=statistics&session=e104001d5a6b&start=1201 >Статистика</a></td></tr></table></th></table>', STICKY, MOUSEOFF, DELAY, 750, CENTER, OFFSETY, -40 );" onmouseout="return nd();">
<span class="inactive">Lightsinger</span></a>
(<span class='inactive'>i</span>)
</th>
Нужна регулярка которая вытаскивала бы выделенный текст.
Пробывал составить сам получилось следующее:
/="\d+" >(\d+)<\/a>.*\"inactive\">([[:graph:]]+)<\/span><\/a>/is
регулярка работает, но если кусков вышеприведенного html кода несколько, то вытаскивается только последнее совпадение с регуляркой.
|
|
|

08.03.2009, 23:37
|
|
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме: 6462214
Репутация:
3171
|
|
preg_match('<span class="inactive">(.*)</span>',$text,$match1');
preg_match('tabindex="9" >(.*)</a>',$text,$match1');
|
|
|

08.03.2009, 23:59
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
PHP код:
<pre>
<?php
@set_time_limit(0);
@ini_set("display_errors","1");
$in = <<<HTML
<th width="80">
</th>
<th width="125" style='white-space: nowrap;'>
<a style="cursor:pointer" onclick="javascript:doit(6, 1, 61, 9, 1, 1);"><img src="http://uni9.ogame.ru/evolution/img/e.gif" border="0" alt="Шпионаж" title="Шпионаж" /></a>
<a href="index.php?page=writemessages&session=e104001d5a6b&messageziel=142200"><img src="" border="0" alt="Написать сообщение" title="Написать сообщение" /></a>
<a href="index.php?page=buddy&session=e104001d5a6b&action=7&buddy_id=142200"><img src="http://uni9.ogame.ru/evolution/img/b.gif" border="0" alt="Предложение подружиться" title="Предложение подружиться" /></a>
</th>
</tr>
<tr>
<th width="30">
<a href="#" tabindex="9" >10</a>
</th>
<th width="30">
<a style="cursor:pointer" onmouseover='return overlib("<table width=240><tr><td class=c colspan=2 >Планета amber [1:61:10]</td></tr><tr><th width=80 ><img src=http://uni9.ogame.ru/evolution/planeten/small/s_wasserplanet01.jpg height=75 width=75 /></th><th align=left ><a href=# onclick=doit(6,1,61,10,1,1) >Шпионаж</a><br><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=1 m>Атака</a><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=5 >Удерживать</a><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=3 >Транспорт</a><br /></th></tr></table>", STICKY, MOUSEOFF, DELAY, 750, CENTER, OFFSETX, -40, OFFSETY, -40 );' onmouseout="return nd();">
<img src="http://uni9.ogame.ru/evolution/planeten/small/s_wasserplanet01.jpg" height="30" width="30"/></a>
</th>
<th width="130" style='white-space: nowrap;'>
amber</th>
<th width="30" style='white-space: nowrap;'>
</th>
<th width="30">
</th>
<th width="150">
<a style="cursor:pointer" onmouseover="return overlib('<table width=240 ><tr><td class=c >Игрок amberios. Место в рейтинге - 1264</td></tr><th><table><tr><td><a href=index.php?page=writemessages&session=e104001d5a6b&messageziel=143212 >Написать сообщение</a></td></tr><tr><td><a href=index.php?page=buddy&session=e104001d5a6b&action=7&buddy_id=143212 >Предложение подружиться</a></td></tr><tr><td><a href=index.php?page=statistics&session=e104001d5a6b&start=1201 >Статистика</a></td></tr></table></th></table>', STICKY, MOUSEOFF, DELAY, 750, CENTER, OFFSETY, -40 );" onmouseout="return nd();">
<span class="inactive">Lightsinger</span></a>
(<span class='inactive'>i</span>)
</th>
-------------------------------------------------------------------------------------------------------
ДУБЛЬ:
-------------------------------------------------------------------------------------------------------
<th width="80">
</th>
<th width="125" style='white-space: nowrap;'>
<a style="cursor:pointer" onclick="javascript:doit(6, 1, 61, 9, 1, 1);"><img src="http://uni9.ogame.ru/evolution/img/e.gif" border="0" alt="Шпионаж" title="Шпионаж" /></a>
<a href="index.php?page=writemessages&session=e104001d5a6b&messageziel=142200"><img src="" border="0" alt="Написать сообщение" title="Написать сообщение" /></a>
<a href="index.php?page=buddy&session=e104001d5a6b&action=7&buddy_id=142200"><img src="http://uni9.ogame.ru/evolution/img/b.gif" border="0" alt="Предложение подружиться" title="Предложение подружиться" /></a>
</th>
</tr>
<tr>
<th width="30">
<a href="#" tabindex="9" >10</a>
</th>
<th width="30">
<a style="cursor:pointer" onmouseover='return overlib("<table width=240><tr><td class=c colspan=2 >Планета amber [1:61:10]</td></tr><tr><th width=80 ><img src=http://uni9.ogame.ru/evolution/planeten/small/s_wasserplanet01.jpg height=75 width=75 /></th><th align=left ><a href=# onclick=doit(6,1,61,10,1,1) >Шпионаж</a><br><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=1 m>Атака</a><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=5 >Удерживать</a><br /><a href=index.php?page=flotten1&session=e104001d5a6b&galaxy=1&system=61&planet=10&planettype=1&target_mission=3 >Транспорт</a><br /></th></tr></table>", STICKY, MOUSEOFF, DELAY, 750, CENTER, OFFSETX, -40, OFFSETY, -40 );' onmouseout="return nd();">
<img src="http://uni9.ogame.ru/evolution/planeten/small/s_wasserplanet01.jpg" height="30" width="30"/></a>
</th>
<th width="130" style='white-space: nowrap;'>
amber</th>
<th width="30" style='white-space: nowrap;'>
</th>
<th width="30">
</th>
<th width="150">
<a style="cursor:pointer" onmouseover="return overlib('<table width=240 ><tr><td class=c >Игрок amberios. Место в рейтинге - 1264</td></tr><th><table><tr><td><a href=index.php?page=writemessages&session=e104001d5a6b&messageziel=143212 >Написать сообщение</a></td></tr><tr><td><a href=index.php?page=buddy&session=e104001d5a6b&action=7&buddy_id=143212 >Предложение подружиться</a></td></tr><tr><td><a href=index.php?page=statistics&session=e104001d5a6b&start=1201 >Статистика</a></td></tr></table></th></table>', STICKY, MOUSEOFF, DELAY, 750, CENTER, OFFSETY, -40 );" onmouseout="return nd();">
<span class="inactive">Lightsinger</span></a>
(<span class='inactive'>i</span>)
</th>
HTML;
preg_match_all('|<a href=.*tabindex=.*>(.*)</a>|', $in,$res1);
preg_match_all('|<span class=.*>(.*)</span></a>|', $in,$res2);
for($i=0;$i<count($res1[1]);$i++) echo "{$res1[1][$i]}\n";
for($z=0;$z<count($res2[1]);$z++) echo "{$res2[1][$z]}\n";
?>
</pre>
|
|
|

09.03.2009, 00:20
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Я как всегда сторонник обойтись одной регуляркой))
PHP код:
preg_match_all('#(tabindex="9"[\s]?|class="inactive")>([0-9]*|[^<]*)[</span>]*</a>#s', $str, $out);
print_r($out);
Результат:
Код:
[2] => Array
(
[0] => 10
[1] => Lightsinger
)
|
|
|

11.03.2009, 07:15
|
|
Постоянный
Регистрация: 26.03.2008
Сообщений: 311
Провел на форуме: 3799424
Репутация:
479
|
|
подскажите как отсеять все символы кроме :
A-Z
a-z
0-9
. , - * ( )
и точно так же с русским алфавитом.
и второй вопрос по мод_реврайту
что имеем:
http://site.ru/index.php?page=x и на этой же странице параметр id
что хотим: http://site.ru/page/x и так же с id
ээмм а в скриптах не надо будет менять ссылки?($pervpage = '<a title="В начало" href= ./index.php?page=1>' 
Последний раз редактировалось #Wolf#; 11.03.2009 в 07:45..
|
|
|

11.03.2009, 07:46
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Сообщение от #Wolf#
подскажите как отсеять все символы кроме :
A-Z
a-z
0-9
. , - * ( )
и второй вопрос по мод_реврайту
что имеем:
http://site.ru/index.php?page=x и на этой же странице параметр id
что хотим: http://site.ru/page/x и так же с id
ээмм а в скриптах не надо будет менять ссылки?($pervpage = '<a title="В начало" href= ./index.php?page=1>' 
1)
Так:
PHP код:
$str = 'vbgmhdg*ere(bmdtjkddv0964,32257));№\84Рsdgdgbs !@@3ё+_):;№';
preg_match_all('#([a-z0-9-\.,\*\(\)]?)#i', $str, $out);
echo join('', $out[1]);
Или так:
PHP код:
$str = 'vbgmhdg*ere(bmdtjkddv0964,32257));№\84Рsdgdgbs !@@3ё+_):;№';
echo preg_replace('#([^a-z0-9-\.,\*\(\)]?)#i', '', $str);
2)
Код:
RewriteRule ^page/([0-9]*)$ index.php?page=$1 [L]
И ссылки придётся менять в скриптах
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|