Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сбор слов при помощи регулярных выражений.
 
 автор: NERUM   (26.11.2006 в 01:48)   письмо автору
 
 

Здраствуйте!
Мне нужна помощь в регулярных выражниях, дело в том что, у меня есть база мыл, расположенная в файле, я вывожу из файла базу и регулярное выражение должно отбирать только первое слово, то есть из support@mail.ru, он выводит support, но ошибка в том что скрипт берет только первое мыло, а остальные нет.
Потскажите пожалуйста в чем ошибка.

$file =fopen("mail.txt", "r+");
$fileread=fgets($file);
$mail="support@mail.ru, alex@gmail.com, der@yandex.ru"; //здесь переменная $fileread, я привел пример, как емейлы расположены в файле.
$www_url=ereg('([[:alpha:]]+)@([[:alpha:]]+)\.([[:alpha:]]{2,4})',$mail, $arry);
if($www_url)
{
echo  $arry[1]."<br>";
}
else
{
    echo "&#206;&#248;&#232;&#225;&#234;&#224; &#241;&#238;&#226;&#239;&#224;&#228;&#229;&#237;&#232;&#255; &#237;&#229; &#237;&#224;&#233;&#228;&#229;&#237;&#251;!";
}

   
 
 автор: Router   (26.11.2006 в 04:29)   письмо автору
 
   для: NERUM   (26.11.2006 в 01:48)
 

Ошибка в том, что нужен цикл... Он просто берет одно мыло и завершает работу.
А нужно, чтобы переходил на следующую итерацию...соотвественно брал второе.
Используй цикл, например, while. C условием выхода, когда будет достигнут конец файла.
Если мыла хранишь в массиве, то соответственно до конца массива.
Надеюсь, идея понятна.

   
 
 автор: kasmanaft   (26.11.2006 в 08:33)   письмо автору
 
   для: Router   (26.11.2006 в 04:29)
 

нет, ошибка скорее в том, что ereg находит только первое вхождение. А для того, чтобы обработать всю строку нужно использовать ф-ю preg_match_all


<?php
$file 
=fopen("mail.txt""r+"); 
$fileread=fgets($file);
$mail="support@mail.ru, alex@gmail.com, der@yandex.ru";
$www_url=preg_match_all('#([[:alpha:]]+)@([[:alpha:]]+)\.([[:alpha:]]{2,4})#',$mail$arry);
if(
$www_url)
{
  echo  
$arry[1][0]."<br>";
  echo  
$arry[1][1]."<br>";
  echo  
$arry[1][2]."<br>";
}
else
{
  echo 
"всякие крякозябры :))";
}
?>

   
 
 автор: NERUM   (26.11.2006 в 11:30)   письмо автору
 
   для: kasmanaft   (26.11.2006 в 08:33)
 

Спасибо большое за помощь все работает.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования