Каким образом почистить и перезаписать большой файл с номерами телефона?
Есть большой файл приблизительно 20 000 номеров телефона, каким образом его перезаписать в другой файл, тоесть нужно в нем найти только русские номера мобильного и записать в новый файл
файл вида
11<|>79141515543<|>Vitalii Vashchenko<|>a7ZjxdNLjtY<|>
12<|>77772651321<|>Елена Морозова<|>m0EHQFvAWxM<|>
13<|>79051823252<|>Школа осознанного<|>nNG6VOmmwo4<|>
14<|>89029249896<|>Галина Смирнова<|>LPJQfEe2rRQ<|>
15<|>1200004731<|>Дневник Биохакера Agenyz.<|>C-SCw4kYKME<|>
16<|>79508105575<|>Наталья Кочеткова. БИФРИ<|>UQuRRwFu5Zc<|>
17<|>375293982389<|>Светлана Маспанова<|>zkPoD48ZcyA<|>
18<|>79208468499<|>наталья стукало<|>Ds0sxNiQTPU<|>
19<|>572379605211<|>marina bezgubenko<|>PyBbLogv4R4<|>
20<|>79295870389<|>Наталья Хонина<|>Ew4FM0mVJbA<|>
21<|>58510350<|>Наталья Знаменская<|>oevFdOdnU2Y<|>
Ответы (2 шт):
Автор решения: Vitaliy Reusch
→ Ссылка
функцией file разбиваешь файл на массив (одна ячейка — одна строка), циклом проходишься по каждой строке и номеру телефона, проверяешь его и если подходит по твоим критериям, кидаешь в файл.
$file = 'numbers.txt';
$lineArray = file($file);
for($i = 0; $i != count($lineArray); $i++)
{
$line = explode('<|>', $lineArray[$i]);
$result = /* проверка на РФ номер телефона */;
if($result)
file_put_contents('russian_numbers.txt', $lineArray[$i]);
}
Автор решения: phpBear
→ Ссылка
$in_filename = "phones.txt"; //имя файла с телефонами
$out_filename = "russian_phones.txt"; //имя файла куда будем писать российские телефоны
//Почему сразу не читать в массив? А если файл "весит" 1Гб или больше?
//У вас на компьютере где вы запустите данный скрипт хватит памяти под такой массив?
$fp = @fopen($in_filename,'r');
if ( $fp ) {
$fw = @fopen($out_filename,"w");
if ( $fw ) {
while ( !feof($fp) ) {
//11<|>79141515543<|>Vitalii Vashchenko<|>a7ZjxdNLjtY<|>
$line = fgets($fp, 1024);
//Все российские номера начинаются на 7 и имеют длину 11 цифр
if ( trim( $line ) != '' ) {
if (preg_match("/\d+<\|>7[0-9]{10}<\|>.+?<\|>.+?<\|>/", trim( $line ) ) ) {
fputs($fw, $line);
}
}
}
fclose( $fw );
} else {
echo "ERROR: Output file \"".$out_filename."\" can't be created.\n";
}
fclose($fp);
} else {
echo "ERROR: Input file \"".$in_filename."\" not found or can't be readed.\n";
}