Регулярные выражения

lemuria

Новичок
Регулярные выражения

Вот написал такой скриптик:
PHP:
<?php
$content = file_get_contents("http://localhost/corporate.htm");
preg_match_all('|^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$|i', $content, $out, PREG_PATTERN_ORDER);
for($i=0; $i<count($out[1]); $i ++)
{
   echo $out[$i]."<br>";
}
?>
При запуске мне выдается такое
Notice: Undefined offset: 1 in D:\internet\home\localhost\www\train\_debug_tmp.php on line 4

В чем проблема никак не могу понять...
Помогите разобраться.
 

WP

^_^
Зачем тебе дергать мыльницы из страницы? Ты спамер?
 

vasa_c

Новичок
for($i=0; $i<count($out[1]); $i ++) {
echo $out[$i]."<br>";
}

Во-первых, откуда уверенность, что в out есть индекс 1?
Во-вторых, видимо имелось ввиду либо — count( $out );
либо — echo $out[ 1 ][ $i ]
 

lemuria

Новичок
<?php
$content = file_get_contents("http://localhost/corporate.htm");
preg_match_all('|^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$|i', $content, $out, PREG_PATTERN_ORDER);
for($i=0; $i<count($out); $i ++)
{
echo $out[1][$i]."<br>";
}
?>
Если код такой, то выводится сообщение:
Notice: Undefined offset: 1 in d:\internet\home\localhost\www\train\4.php on line 6

Если код изменить на такой:
<?php
$content = file_get_contents("http://localhost/corporate.htm");
preg_match_all('|^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$|i', $content, $out, PREG_PATTERN_ORDER);
for($i=0; $i<count($out[0]); $i ++)
{
echo $out[0][$i]."<br>";
}
?>
То, вообще ничего не выводится - ни ошибок, ни результатов.
Странно...

-~{}~ 20.06.06 21:53:

Я сам разобрался!
Все дело было в том, что нужно было правильно написать проверку регулряного выражения, именно, в таком виде:
"([-a-zA-Z0-9._]+@[-a-zA-Z0-9.]+(\.[-a-zA-Z0-9]+)+)"
Но все равно спасибо за ответы :)
 
Сверху