Отсортировать ссылки по ID

Jarerd
На сайте с 08.03.2012
Offline
96
697

есть у меня файлик со ссылками вида:


сайт.ком/ля-ля-ля/3265
сайт.ком/абра-кадабра/1956
сайт.ком/бла-бла-бла/2305

...и тд, как мне их выстроить по порядку ID, те:


сайт.ком/абра-кадабра/1956
сайт.ком/бла-бла-бла/2305
сайт.ком/ля-ля-ля/3265

и тд..., софт может есть какой, или скрипт?

D
На сайте с 14.01.2007
Offline
153
#1

PHP:usort

если вам этого мало, то вам в раздел: Работа для вебмастера

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#2

Алоритм:

Читаем файл, получаем что-то типа

[0] => сайт.ком/ля-ля-ля/3265

[1] => сайт.ком/абра-кадабра/1956

Перебираем массив и бьем(explode) по слэшу каждую строку и берем последнюю ячейку массива(айди которая).

Итого

[0] => 3265

[1] => 1956

Сортируем массив по значению(с сохранением ключей!!!)

Проходим по массиву форычом.

{

смотрим ключ массива, берем массив с этой ячейкой из исходного файла и пишем в необходимый файл.

}

Все.

Верю, что есть более простые пути, но пятница была пятницей:):):)

Подпись))
Brand from Amber
На сайте с 18.08.2007
Offline
291
#3

Jarerd,

  • в Notepad++ заменяем "/" на " " (знак табуляции)
  • Вставляем в Excel - и сортируем по последнему столбцу.
  • копируем обратно в Notepad++ и заменяем балуляцию на "/"

Актуально если в url нет больше знаков "/"

Лучший способ понять что-то самому - объяснить это другому.
siv1987
На сайте с 02.04.2009
Offline
427
#4


usort( $arr, create_function('$a, $b', '
$id1 = preg_replace( "#^.+/(\d+)$#", "$1", $a );
$id2 = preg_replace( "#^.+/(\d+)$#", "$1", $b );
return $id1 > $id2 ? 1 : -1;
') );
edogs software
На сайте с 15.12.2005
Offline
775
#5

Тут кажется модно выкладывать разные варианты, засветимся и мы:)


$t=file('ar.txt');
usort($t,function($a,$b) { if(intval(end(explode('/',$a)))>intval(end(explode('/',$b)))) return 1; else return -1; });
Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
LEOnidUKG
На сайте с 25.11.2006
Offline
1726
#6

Да ладно вам программеры :D

1. Открываем Excel

2. делим строчки по символу /

3. сортируем нужный столбец, он автоматически все остальные подтягивает

4. соединяем полученное через функцию СЦЕПИТЬ

Пропустил что нужно будет столбцы вставить новые с символов /

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
Jarerd
На сайте с 08.03.2012
Offline
96
#7

Спасибо народ!! Столько вариантов накидали, есть из чего выбрать!!!

Мне тут под Excel еще одну отличную фйнкцию подогнали, Может кому пригодится:

=ЗНАЧЕН(ПСТР(A31;ПОИСК("@";ПОДСТАВИТЬ(A31;"/";"@";ДЛСТР(A31)-ДЛСТР(ПОДСТАВИТЬ(A31;"/";""))))+1;1000))

..если ссылки в столбце A, то функцию ставим в столбец B....она автоматом тащит значение после последнего слэша (т.е. мои ID из ссылок), и уже патом выделяем оба столбца, и выбираем сортировку по столбцу B, все получается быстро и красиво.....☝

DV
На сайте с 01.05.2010
Offline
644
#8

Я б grep awk sed натравил бы. Задача интересная, когда заняться нечем.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий