|
|
|
| Мне нужно вытащить с одного сайта e-mailы.
Среди прочего, последовательность нужной информации на странице такая:
<BR>E-mail: <B>rklynk@ukr.net</B><BR>
| но может быть и с пробелами и переносами, типа:
<BR>E-mail:
<B>hrr@gеect.com</B><BR>
|
Как можно всё это обозначить в рег. выражении и как вывести в итоге все адреса со страницы? | |
|
|
|
|
|
|
|
для: Владимир22
(24.01.2007 в 18:06)
| | Если не ошибаюсь то примерно так
$page = file (url);
preg_match_all ('#([a-z0-9_\-]+)@([a-z0-9_\-]+)\.([a-z]{2,6})#im', $page, $email);
for ($i=0; $i<count($email[0]); $i++)
print "<b>{$email[1][$i]}</b>@<i>{$email[2][$i]}</i>.{$email[3][$i]}";
|
| |
|
|
|
|
|
|
|
для: bronenos
(24.01.2007 в 18:40)
| | А чего значит ")@(" Это как понятЬ? Что делают эти круглые скобки? Почему просто не +@ ? | |
|
|
|
|
|
|
|
для: Бамси
(24.01.2007 в 18:56)
| | Эти скобки группируют адрес хост и домен чтоб можно было обращаться отдельно потом
Можно и без них но у меня хорошее настроение и я сделал так =) | |
|
|
|
|
|
|
|
для: Бамси
(24.01.2007 в 18:56)
| | + относится не к собаке а к первой скобке и означает повторение знака один или более раз | |
|
|
|
|
|
|
|
для: Владимир22
(24.01.2007 в 18:06)
| | Я понимаю, что вы предлагали воспользоваться навигационными участками кода, но все же этот способ мне кажется более универсальным если вы захотите например изменить дизайн страницы... | |
|
|
|
|
|
|
|
для: bronenos
(24.01.2007 в 18:42)
| | А что у вас за переменная $emails - откуда взялась или что там должно быть?
Вот сделал код по вашему образцу:
<?
$page = file("http://site/index.htm");
preg_match_all ('#([a-z0-9_\-]+)@([a-z0-9_\-]+)\.([a-z]{2,6})#im', $page, $emails);
foreach ($emails as $e)
print "<b>{$e[1]}</b>@<i>{$e[2]}</i>.{$e[3]}";
?>
|
Выдаёт:
Warning: preg_match_all() expects parameter 2 to be string, array given in ...... line 3
Invalid argument supplied for foreach() ......line 4 | |
|
|
|
|
|
|
|
для: Владимир22
(24.01.2007 в 19:09)
| |
<?
$page = file("http://site/index.htm");
$page = implode($page, ' ');
preg_match_all ('#([a-z0-9_-]+)@([a-z0-9_-]+).([a-z]{2,6})#im', $page, $emails);
foreach ($emails as $e)
print "<b>{$e[1]}</b>@<i>{$e[2]}</i>.{$e[3]}";
?>
|
| |
|
|
|
|
|
|
|
для: Киналь
(24.01.2007 в 19:32)
| | Вывод иначе, попробуйте распечатать массив, он иначе устроен, foreach не подойдет. | |
|
|
|
|
|
|
|
для: Владимир22
(24.01.2007 в 19:09)
| | В эту переменную складывается то что нашел скрипт. И вы передаете страницу как массив.
А надо как строку. | |
|
|
|