Помощник
|
Нужен скрипт на php или аналогичный |
Kuzzma
|
Сообщение
#1
|
||
|
|
||
|
|||
x64 |
19.8.2019, 16:57;
Ответить: x64
Сообщение
#2
|
|
Вариант самый простой — регулярные выражения.
Открываем txt-файл в notepad2 или notepad++, жмакаем Ctrl-H. Строка Найти: /.+ Строку Замена оставляем пустой. Обязательно отмечаем галку Регулярные выражения. Потом Заменить всё — и готово. Касательно основного домена и зоны. От gentoo.com.ru нельзя оставлять com.ru. |
|
|
Kuzzma
|
Сообщение
#3
|
|
x64, привет!
Спасибо огромное! Проверил Ваш вариант. Вроде работает, но не до конца, например: было так forum.cayservice.ru/showthread.php?t=15&page=34 стало так forum.cayservice.ru Может чего в формулу ещё нужно добавить, чтобы убирал поддомены? Kuzzma -------------------- 👉 КРИПТОБИРЖА №1 > Купить | BTC | Продать | ETH | Трейдинг | Обмен | Mastercard | VISA |
|
|
icoder |
19.8.2019, 17:49;
Ответить: icoder
Сообщение
#4
|
|
Kuzzma,
Код $filename = __DIR__.'/links.txt'; // путь к файлу с ссылками $data = array(); if (file_exists($filename)) { $links = file_get_contents($filename); if (!empty($links)) { $links = explode("\r\n", $links); foreach ($links as $one) { if (!empty($one)) { $one = trim($one); $one = preg_replace('/\/.*$/', '', $one); $one = explode('.', $one); $one_count = count($one); if ($one_count > 1) { $one = $one[$one_count-2]. '.' . $one[$one_count-1]; $data[] = $one; } } } } } $data_count = count($data); if($data_count > 0){ // удаляем дубли $data = array_unique($data); // адрес файла для записи результатов $filename = __DIR__.'/data.txt'; $filedata = implode("\r\n", $data); // записываем файл @file_put_contents($filename, $filedata, LOCK_EX); } Но проблема в том, что если будут домены типа DOMEN.COM.RU, то будет обрезаться все кроме COM.RU icoder, Как вариант, можно сделать массив доменов-исключений, для которых допускается записывать поддомены Код // массив доменов, для которых допустимы поддомены $domen = array( 'com.ru', 'ru.net', 'net.ru' ); $filename = __DIR__.'/links.txt'; // путь к файлу с ссылками $data = array(); if (file_exists($filename)) { $links = file_get_contents($filename); if (!empty($links)) { $links = explode("\r\n", $links); foreach ($links as $one) { if (!empty($one)) { $one = trim($one); $one = strtolower($one); $one = preg_replace('/\/.*$/', '', $one); $one = explode('.', $one); $one_count = count($one); if ($one_count > 1) { $str = $one[$one_count-2]. '.' .$one[$one_count-1]; if (in_array($str, $domen) && !empty($one[$one_count-3])) { $str = $one[$one_count-3]. '.' .$str; } $data[] = $str; } } } } } $data_count = count($data); if($data_count > 0){ // удаляем дубли $data = array_unique($data); // адрес файла для записи результатов $filename = __DIR__.'/data.txt'; $filedata = implode("\r\n", $data); // записываем файл @file_put_contents($filename, $filedata, LOCK_EX); } -------------------- |
|
|
VinogradOFF |
19.8.2019, 20:31;
Ответить: VinogradOFF
Сообщение
#5
|
|
А еще можно в эксееле использовать разделитель
но 500к строк не удобно и остается проблема с поддоменом, которая также решается сначала разделителем точкой, потом склеиванеим последующих столбцов домен|точка|зона Но на php конечно элегантнее в разы |
|
|
Earth_spirit |
21.11.2019, 13:12;
Ответить: Earth_spirit
Сообщение
#6
|
|
|
Да, в экселе можно, но с таким объемом там неудобно было бы работать
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Создать видеоканал лучше в ютуб или телеграм? | 16 | uahomka | 3060 | 11.4.2024, 20:10 автор: Alexand3r |
|
Нужен кодер, чтобы пофиксить ошибку Wordpress после переноса сайта | 0 | Alex-777 | 819 | 7.4.2024, 18:05 автор: Alex-777 |
|
Если статья не в индексе Google - она уникальна или нет? | 5 | uahomka | 1432 | 3.4.2024, 23:56 автор: Liudmila |
|
Нужен исполнитель на постоянную основу для набора небольших текстов | 20 | Думающий | 9276 | 2.4.2024, 18:05 автор: Думающий |
|
Где больше пробив на кликандер или попандер или попап трафике? | 1 | Boymaster | 676 | 20.3.2024, 9:50 автор: Skyworker |
Текстовая версия | Сейчас: 18.4.2024, 14:29 |