[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка строк из файла
Страницы: 1, 2
Ketch
всем привет)
вообщем задача в том, что бы из большого файла со списком e-mail адресов отсортировать и вывести на экран только те адреса домен которых @mail.ru

я делаю вот так:
<?
$file='email.txt'; //файл с адресами
$line=file($file); //записываем в массив все строки из файла
$total=count($line); //узнаем кол-во строк

for ($i=0;$i<$total;$i++) {
$domain=strstr($line[$i],"@"); //узнаем домен
if ($domain="@mail.ru")
echo $line[$i].'<br>';
}
?>


но на экран все равно выводятся все адреса.. с любыми доменами
подскажите в чем ошибка? что не так делаю? :(
xlebosol
if ($domain=="@mail.ru")
echo $line[$i].'<br>';
}
Ketch
Цитата (xlebosol @ 6.02.2013 - 12:29)
if ($domain=="@mail.ru")
echo $line[$i].'<br>';
}

а теперь вообще экран пустой.. ничего не выводиться(((((((
xlebosol
if ($domain=="@mail.ru") {
echo $line[$i].'<br>';
}

Проверьте, что бы $line - было массивом!
Ketch
в моем варианте:
if ($domain="@mail.ru") 
echo $line[$i].'<br>';

на экран выводятся все адреса из файла..
значит
echo $line[$i].'<br>';
- работает! значит $line - массив!
Ketch
мне кажется php тупит
Valick
Цитата
мне кажется php тупит

бугагашечки smile.gif
как же вы любите файл целиком грузить в оперативку


_____________
Стимулятор ~yoomoney - 41001303250491
xlebosol
Цитата (Ketch @ 6.02.2013 - 10:54)
в моем варианте:
if ($domain="@mail.ru") 
echo $line[$i].'<br>';


В Вашем варианте Вы присваиваете значение, а не проверяете.
Ketch
Цитата (Valick @ 6.02.2013 - 13:00)
Цитата
мне кажется php тупит

бугагашечки smile.gif
как же вы любите файл целиком грузить в оперативку

в файле всего 100 адресов - 100 строк. не оч то большая нагрузка
kaww
for ($i=0;$i<$total;$i++) {
if (strpos($line[$i],"@mail.ru") !== false)
echo $line[$i].'<br>';
}
Игорь_Vasinsky
Ketch
Цитата
мне кажется php тупит

канешь, не вы же :lol:

$file='email.txt'; //файл с адресами
$line=file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); //записываем в массив все строки из файла

foreach($line as $email){
if(substr_count($email, '@mail.ru')>0)
echo $email.'<br />';
}


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Ketch
о, спасибо.. я бы был еще очень признателен если бы сказали - почему мой скрипт не работает то?
Игорь_Vasinsky
Цитата
if ($domain="@mail.ru")

хитрый способ сравнения.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
killer8080
если файл небольшой
if(preg_match_all('#\S+@mail\.ru#i', file_get_contents('mail.txt'), $match))
echo '<pre>'.print_r($match[0], 1).'</pre>';
Ketch
killer8080, сэнкс но я еще не знаю такие функции


kaww, кстати !==false не обязательно писать
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.