HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

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

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

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

Репутация: 3338


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

Во первых всё работает. Это раз. Во вторых (правда не знал, что ты не знаешь таких эелементарных вещей) - если ты проверяешь на исходном тексте в .txt файле, то всё должно быть написано в одну строчку. Никаких <br> я там не увидел.

ЗЫЖ Если все сохранить в .txt в одну строку и запустить мою регулярку - всё прекрасно работает
 

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

Репутация: 1304


По умолчанию

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>'
;

if (
preg_match_all('|<div(.*)class(.*)>(.*)</div>|Ui'$in$result))
print_r ($result); else echo 'Нету такого';
результат без модификатора s:
Код:
Нету такого
Результат C модификтором s:
Код:
Array
(
    [0] => Array
        (
            [0] => <div class="a1">
	<div class="b1">
		<div class="c1">
			sometext1
		</div>
            [1] => <div class="c2">
			sometext2
		</div>
            [2] => <div class="a1">

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

    [1] => Array
        (
            [0] =>  
            [1] =>  
            [2] =>  
            [3] =>  
        )

    [2] => Array
        (
            [0] => ="a1"
            [1] => ="c2"
            [2] => ="a1"
            [3] => ="c2"
        )

    [3] => Array
        (
            [0] => 
	<div class="b1">
		<div class="c1">

			sometext1
		
            [1] => 
			sometext2
		
            [2] => 
	<div class="b1">
		<div class="c1">
			sometext3
		
            [3] => 
			sometext4
		
        )

)
Вопросы?

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

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

Репутация: 3338


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

Нет, ну молодец конечно, просто это не надо в случае парсинга реальной html-страницы
 

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

Репутация: 1304


По умолчанию

Реальная html страница:
PHP код:
<?PHP $in="<html>\r\n<body>Надеюсь это не откровение, что в ХТМЛ можно вставлять переводы строк? Хоть они и не будут показаны в браузере, однако в исходном коде будут пристутствовать \r\n</body>\r\n</html>";
echo 
$in;
Вопрос актуален - подскажите рекурсивную регулярку для любого количества вложеных дивов
 

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

Репутация: 3338


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

В качестве доказательсва моей правоты - парсер зе беста с Баша, без всяких там "s"
PHP код:
<?
$filename 
file_get_contents('http://bash.org.ru/best'); 
$patern '|<div>(.*)</div>|Ui';
preg_match_all($patern$filename$result);
print_r ($result);
?>
В исходниках сплошные красные абзацы)) Учим html и не тупим Peace
 

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

Репутация: 1304


По умолчанию

Pashkela
PHP код:
$patern '|<body(.*)</body>|Ui'
Проверь, как же так, бедааа, тэг <body есть, закрывающий </body> есть, а ничего не выводит.. Бедаааа. А то что в дивах самих цитат нет переводов строк, как бы логично. Данные берутся из БД и следить за опрятностью кода - не нужно

Ну давай расскажи мне что я не прав)
 

  #97  
Старый 17.12.2008, 17:27
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 'Нету такого';
$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 в 17:36..
 

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

Репутация: 3338


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

$patern = '|<body(.*)</body>|Ui';

потому что закрыть забыл первый тег ">"

правильно так:

$patern = '|<body>(.*)</body>|Ui';
 

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

Репутация: 1304


По умолчанию

Pashkela Не пиши по моему вопросу ничего плиз. Вы опасны для моего мозга

Цитата:
лучше выложу тебе код на твой конкретный случай, раз тебе так надо

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];}
}
?>
Эт имба код - прогнать через жадную регулярку, и вывести код построчно, я бы так не сумел

Цитата:
$patern = '|<body(.*)</body>|Ui';

потому что закрыть забыл первый тег ">"

правильно так:

$patern = '|<body>(.*)</body>|Ui';
Афигеть, зайди на этот баш, открой исходный код страницы и посмотри что начальный тэг тела документа выглядит: <body style="margin: 0px;"> Поэтому тэг СПЕЦИАЛЬНО не закрыт
 

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

Репутация: 3338


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

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

Зато рабочий

"Вы опасны для моего мозга"

Конечно, неприятно осознавать, когда тебе знаниями по мозгам надавали Выкладывай хоть какую-то свою рабочую не " имба" версию, ламота))

ЗЫЖ Развелось псевдо-спецов. Лично тебе помогать больше не буду, если ты так просишь. Ему рабочий код дали - а оно тут пузыри пускает сидит. Ппц. Извините, простите, что выложил вас вероятно не самое оптимальное решение вашей проблемы. Больше не повторится

"Афигеть, зайди на этот баш"

Молодой человек, если вы ничего не понимаете в регулярках, то лучше не выё, в тот момент мне конкретно на баш уже было пох. А ваш вариант -

$patern = '|<body(.*)</body>|Ui';

полный бред
 
 





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


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




ANTICHAT.XYZ