|
|
|
| Здраствуйте!
Мне нужна помощь в регулярных выражниях, дело в том что, у меня есть база мыл, расположенная в файле, я вывожу из файла базу и регулярное выражение должно отбирать только первое слово, то есть из 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 "Îøèáêà ñîâïàäåíèÿ íå íàéäåíû!";
}
|
| |
|
|
|
|
|
|
|
для: NERUM
(26.11.2006 в 01:48)
| | Ошибка в том, что нужен цикл... Он просто берет одно мыло и завершает работу.
А нужно, чтобы переходил на следующую итерацию...соотвественно брал второе.
Используй цикл, например, while. C условием выхода, когда будет достигнут конец файла.
Если мыла хранишь в массиве, то соответственно до конца массива.
Надеюсь, идея понятна. | |
|
|
|
|
|
|
|
для: 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 "всякие крякозябры :))";
}
?>
|
| |
|
|
|
|
|
|
|
для: kasmanaft
(26.11.2006 в 08:33)
| | Спасибо большое за помощь все работает. | |
|
|
|