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

23.07.2009, 21:12
|
|
Новичок
Регистрация: 06.02.2009
Сообщений: 10
Провел на форуме: 98658
Репутация:
9
|
|
L I G A, забыл написать, что id00900 - может быть разным, и
PHP код:
<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;">
Является явным указателем этой ссылки, т.к. до этого есть такие ссылки...
|
|
|

23.07.2009, 21:37
|
|
Постоянный
Регистрация: 06.02.2008
Сообщений: 494
Провел на форуме: 1754802
Репутация:
380
|
|
Сообщение от RESPECТ
L I G A, забыл написать, что id00900 - может быть разным, и
PHP код:
<dt>Имя:</dt><dd><div style="width: 140px; overflow: hidden;">
Является явным указателем этой ссылки, т.к. до этого есть такие ссылки...
PHP код:
$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);
|
|
|

23.07.2009, 21:40
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
PHP код:
<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>
|
|
|

25.07.2009, 14:03
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
как распарсить строку типа
PHP код:
{"userId":"24389417527847511997","menuType":"User","fio":"Ольга Широкова ( ..."}</div></div></a></div></td></tr></table></div><div><img class="online"
делаю так:
PHP код:
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);
не находит из-за символов " ( ..."
но в других случаях там вообще нет никаких символов, кроме латинских букв и пробелов
|
|
|

25.07.2009, 14:18
|
|
Новичок
Регистрация: 24.07.2009
Сообщений: 24
Провел на форуме: 71052
Репутация:
5
|
|
Дикс, лучше кинь пару запросов, чтобы понять что там быть может а что не может.
А так:
Код:
{"userId":"([0-9]+)","menuType":"User","fio":"(.*?)\s\( ..."}</div></div></a></div></td></tr></table></div><div><img class="online"
У меня отлично работает (python). ХЗ как там в PHP. Может нужно что-то дополнительно экранировать.
|
|
|

25.07.2009, 15:13
|
|
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме: 2209675
Репутация:
537
|
|
да в принципе уже разобрался, просто увеличил {0, 600}
а концовка "( ..."" -- она вообще нестандартная, её не надо писать
|
|
|

25.07.2009, 15:44
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
PHP код:
<?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>";
?>
|
|
|

25.07.2009, 19:50
|
|
Участник форума
Регистрация: 14.12.2008
Сообщений: 140
Провел на форуме: 186812
Репутация:
14
|
|
помогите, написал регулярку, но не правильно почему-то...
вот есть текст:
<a href="/title/(любое)/" ТУТ ТОЖЕ ЛЮБОЙ ТЕКСТ>Тут тоже любой текст</a>
и мне надо что бы оно выдировало это с текста. я сделал:
preg_match_all('/<a href="\/title\/(tt\d{1,8})\/"[^>]*>([^<]+)<\/a>/',$imdb_site_result,$results, PREG_SET_ORDER )
|
|
|

25.07.2009, 19:57
|
|
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме: 4532332
Репутация:
1196
|
|
\d - все цифры)
и напиши что выдерать.
|
|
|

25.07.2009, 20:00
|
|
Постоянный
Регистрация: 03.06.2009
Сообщений: 385
Провел на форуме: 3178262
Репутация:
389
|
|
да выучи ты уже реглярки
PHP код:
<?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] => Тут тоже любой текст
)
)
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|