ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #101  
Старый 17.12.2008, 18:44
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

Постараюсь все-таки объяснить, что Вы биплан (самолет такой убогий)

Начнем - в быдлокоде, что Вы предложили последним. С помощью жадной регулярки получаете массив. Элемент $result[0][0] содержащий ВСЮ переменную $in. (Если у вас вдруг установлен PHP можете это проверить) Дальше вы разбиваете этот массив и выводите все не пустые строки. Но ояебу, можно было бы написать echo $in; результат был бы тот же.

Заметьте, я объяснил в чем вы не правы, и насколько вы не правы. При этом я не свел все это рассуждение, как вы - "моя твоя труба качал".

Прежде чем что-то, кому-то советовать, проверяйте все таки это у себя.
 

  #102  
Старый 17.12.2008, 19:11
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

"Прежде чем что-то, кому-то советовать, проверяйте все таки это у себя."

ыыыы, во-во, вот и проверь-те:

PHP код:
<?
$in

'<div class="a1"> 
    <div class="b1"> 
        <div class="c1"> 
            sometext1 
        </div> 
        <div class="c2"> 
            sometext2 
        </div> 
    </div> 
</div> 
<div class="a1"> 
    <div class="b1"> 
        <div class="c1"> 
            sometext3 
        </div> 
        <div class="c2"> 
            sometext4 
        </div> 
    </div> 
</div>'
;


if (
preg_match_all('/<div class="a1">(.*)<\/div>/s'$in$result)) 
echo 
'Оле!'"\r\n"; else echo 'Нету такого';
print_r ($result);
?>
ЗЫЖ Чем дальше в лес, тем глубже человек загоняет себя в задницу

Пуся, я всегда и абсолютно всё проверяю, прежде чем сюда выкладывать
 

  #103  
Старый 17.12.2008, 19:21
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

2Gifts
PHP код:
'~<div class="\w\d">((?:[^<>]+|(?R))*)</div>~si' 
 

  #104  
Старый 17.12.2008, 19:26
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Цитата:
Сообщение от astrologer  
2Gifts
PHP код:
'~<div class="\w\d">((?:[^<>]+|(?R))*)</div>~si' 
))) И? Вы чо тут, сговорились что ли?)) В итоге все равно раздельных значений нет)))))) Все равно explode применять)) И если сделать:

PHP код:
$t explode("\r\n"$result[0][0]);
print_r ($t); 
То там те же пустые строки присутствуют, да еще только первых двух значений

А моя регулярка в разы проще, и, что самое главное, корректней

Последний раз редактировалось Pashkela; 17.12.2008 в 19:32..
 

  #105  
Старый 17.12.2008, 19:59
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от Pashkela  
))) И? Вы чо тут, сговорились что ли?)) В итоге все равно раздельных значений нет)))))) Все равно explode применять)) И если сделать:

PHP код:
$t explode("\r\n"$result[0][0]);
print_r ($t); 
То там те же пустые строки присутствуют, да еще только первых двух значений

А моя регулярка в разы проще, и, что самое главное, корректней
Показываешь своё незнание?
 

  #106  
Старый 17.12.2008, 20:01
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Цитата:
Сообщение от astrologer  
Показываешь своё незнание?
а по делу? Гы-гы просто

ЗЫЖ Продолжаем разговор. Сами запустите свой скрипт хоть разок и посмотрите, чо там, где да как

ЗЗЫЫЖЖ Я в шоке сегодня с некоторых доселе уважаемых мною личностей

PS: И еще, чтобы безосновательно не тыкать в меня пальцем и не кричать "ОН ЛАМО!" (я не знаю, может у тебя любовь там с Gifts или еще что) может выложим готовый код по решению задачи Gifts-а именно в том ручье, в котором он думает, оно ему надо? Не просто регулярку какую-то взятую с неба и абсолютно бестолковую на мой взгляд, а код, от А до Я, как у меня? Тогда и сравним, чей код быстрей, правильней и оптимальней Пока я тут наблюдаю только один рабочий код - а именно свой. Со всем риспектом и etc.

Последний раз редактировалось Pashkela; 17.12.2008 в 20:12..
 

  #107  
Старый 17.12.2008, 20:15
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Хорошо, чтобы не быть голословными, разберём результаты работы двух вариантов. Итак, для начала выясним, сколько было всего найдено совпадений.
У твоего варианта - одно, что уже фейл. Вот это совпадение, начинается на начале первого блока и захватывает заодно и второй (было бы их там 200, всё равно совпадение было бы одно):
PHP код:
[0] => Array
        (
            [
0] => <div class="a1">  
    <
div class="b1">  
        <
div class="c1">  
            
sometext1  
        
</div>  
        <
div class="c2">  
            
sometext2  
        
</div>  
    </
div>  
</
div>  
<
div class="a1">  
    <
div class="b1">  
        <
div class="c1">  
            
sometext3  
        
</div>  
        <
div class="c2">  
            
sometext4  
        
</div>  
    </
div>  
</
div>
        ) 
Теперь совпадения подмасок. Тоже одно:
PHP код:
    [1] => Array
        (
            [
0] =>   
    <
div class="b1">  
        <
div class="c1">  
            
sometext1  
        
</div>  
        <
div class="c2">  
            
sometext2  
        
</div>  
    </
div>  
</
div>  
<
div class="a1">  
    <
div class="b1">  
        <
div class="c1">  
            
sometext3  
        
</div>  
        <
div class="c2">  
            
sometext4  
        
</div>  
    </
div>  

        ) 
Собственно, аналогичное для второго варианта:
Совпадения регулярки:
PHP код:
[0] => Array
        (
            [
0] => <div class="a1">  
    <
div class="b1">  
        <
div class="c1">  
            
sometext1  
        
</div>  
        <
div class="c2">  
            
sometext2  
        
</div>  
    </
div>  
</
div>
            [
1] => <div class="a1">  
    <
div class="b1">  
        <
div class="c1">  
            
sometext3  
        
</div>  
        <
div class="c2">  
            
sometext4  
        
</div>  
    </
div>  
</
div>
        ) 
Совпадания подмасок:
PHP код:
    [1] => Array
        (
            [
0] =>   
    <
div class="b1">  
        <
div class="c1">  
            
sometext1  
        
</div>  
        <
div class="c2">  
            
sometext2  
        
</div>  
    </
div>  

            [
1] =>   
    <
div class="b1">  
        <
div class="c1">  
            
sometext3  
        
</div>  
        <
div class="c2">  
            
sometext4  
        
</div>  
    </
div
 

  #108  
Старый 17.12.2008, 20:17
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

Я извиняюсь, а вы последнюю версию моего скрипта запускаете или где? По всей видимости вы юзаете мою ПЕРВУЮ регулярку, заточенную под сайты, а не под бредовые требования Giffts-а. Господа, будьте внимательней, в последнем варианте моего скрипта совсем другая регулярка.

ЗЫЖ Продам очки, недорого

Вот моя последняя и вполне рабочая версия, можете найти её несколько выше, еще до Вашего первого поста по этой задаче:

PHP код:
<?
$in

'<div class="a1"> 
    <div class="b1"> 
        <div class="c1"> 
            sometext1 
        </div> 
        <div class="c2"> 
            sometext2 
        </div> 
    </div> 
</div> 
<div class="a1"> 
    <div class="b1"> 
        <div class="c1"> 
            sometext3 
        </div> 
        <div class="c2"> 
            sometext4 
        </div> 
    </div> 
</div>'
;


if (
preg_match_all('/<div class="a1">(.*)<\/div>/s'$in$result)) 
echo 
'Оле!'"\r\n"; else echo 'Нету такого';
$t explode("\r\n"$result[0][0]);
$count count($t);
for (
$i=0;$i<$count;$i++) 
{
if (!empty(
$t[$i])) {echo $t[$i];}
}
?>

Последний раз редактировалось Pashkela; 17.12.2008 в 20:20..
 

  #109  
Старый 17.12.2008, 20:19
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от Pashkela  
Я извиняюсь, а вы последнюю версию моего скрипта запускаете или где? По всей видимости вы юзаете мою ПЕРВУЮ регулярку, заточенную под сайты, а не под бредовые требования Giffts-а. Господа, будьте внимательней, в последнем варианте моего скрипта совсем другая регулярка.

ЗЫЖ Продам очки, недорого
Из сообщения 102.
 

  #110  
Старый 17.12.2008, 20:28
astrologer
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
Провел на форуме:
3069349

Репутация: 808


По умолчанию

Цитата:
Сообщение от Pashkela  
Вот моя последняя и вполне рабочая версия
Выводит вот это:
PHP код:
Оле!
<
div class="a1">  
    <
div class="b1">  
        <
div class="c1">  
            
sometext1  
        
</div>  
        <
div class="c2">  
            
sometext2  
        
</div>  
    </
div>  
</
div>  
<
div class="a1">  
    <
div class="b1">  
        <
div class="c1">  
            
sometext3  
        
</div>  
        <
div class="c2">  
            
sometext4  
        
</div>  
    </
div>  
</
div
Цитата:
может выложим готовый код
Разумеется
PHP код:
<?php

$in 
=
'<div class="a1">  
    <div class="b1">  
        <div class="c1">  
            sometext1  
        </div>  
        <div class="c2">  
            sometext2  
        </div>  
    </div>  
</div>  
<div class="a1">  
    <div class="b1">  
        <div class="c1">  
            sometext3  
        </div>  
        <div class="c2">  
            sometext4  
        </div>  
    </div>  
</div>'



preg_match_all('~<div class="\w\d">((?:[^<>]+|(?R))*)</div>~si'$in$data);
print_r($data[1]);

?>
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ