ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 3338


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

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

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

  #92  
Старый 17.12.2008, 16:46
Аватар для Gifts
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
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


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

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

  #94  
Старый 17.12.2008, 16:58
Аватар для Gifts
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
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
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
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
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
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
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


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

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

Зато рабочий

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

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

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

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

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

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

полный бред
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Delphi]/[Pascal] Задай вопрос, получи ответ Isis С/С++, C#, Delphi, .NET, Asm 6762 17.06.2010 21:23
[ *NIX ] Задай вопрос - получи ответ. Xszz *nix 1547 15.06.2010 15:41
[Lan] Задай вопрос - получи ответ! sedoy_xxx АнтиАдмин 133 31.03.2010 08:35
Всё о беспороводном соединении на кпк и смартфонах! Задай вопрос - получи ответ! ARMENIN Беспроводные технологии/WPAN/WLAN 2 02.11.2008 00:40
ЕсТь ВоПрос Guma Чаты 4 26.10.2005 21:48



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


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




ANTICHAT.XYZ