PHP-скрипт для сокращения ссылок — short 3.1.1 lite

Если функционала таких сервисов как goo.gl, bit.ly и прочее вам недостаточно — скачайте бесплатно PHP-скрипт для сокращения длинных ссылок — short 3.1.1 lite.

PHP-скрипт для сокращения ссылок — short 3.1.1 lite

Примечание: Это не сервиса, это PHP-скрипт для персонального использования.

Страница «Статистика»
Страница «Статистика»

Требования:

PHP 5 и PDO драйвер SQLite.

Плюсы:

  • это своё: в папке, на поддомене или домене;
  • это бесплатно (по крайней мере, lite-версия);
  • адаптивный интерфейс (можно работать и с мобильного устройства);
  • маленький: index.php и style.css;
  • легко переносится (за счёт использования SQLite);
  • минимальная нагрузка на сервер (хорошо для виртуального хостинга);
  • есть автоматическое создание БД (без отдельного шага установки);
  • сохраняет красивый вид URL даже без модуля преобразования URL (mod_rewrite), пример: sitename.ru/?htNdl;
  • есть возможность прописать свой ЧПУ,
    например: %action%.html — получим: sitename.ru/htNdl.html;
  • всего 4-ри опции;
  • Можно редактировать все данные: «длинный URL», «фрагмент короткого URL», «примечание» и даже «количество кликов».

При добавлении:

  • нужно указать только «длинный URL» (если что, скрипт обрежет лишние пробелы по краям и добавит http:// в начале);
  • можно прописать свой «фрагмент короткого URL» или он будет создан автоматически (пятизначный уникальный идентификатор);
  • можно прописать «примечание» (например, содержания TITLE страницы).

Страница «Добавить»
Страница «Добавить»

При изменении, есть возможность редактировать количество кликов.

Страница «Изменить»
Страница «Изменить»

Минусы:

  • Нужен свой хостинг;
  • Нет подробной статистики (только клики);
  • Нет поддержки кириллических доменов;
  • Нет интеграции с движками (WordPress, Drupal и прочее);
  • Все ссылки выводятся списком без разбиения на страницы;
  • Шрифт иконок Awesome берётся со стороннего CDN.

Демо-версия

Статус: тестируется вариант без ЧПУ
Адрес: http://c3h.ru/
Пароль: 12345

Установка и настройка

  1. Скачайте архив по ссылке ниже, распакуйте его содержание в отдельную папку, на домен или поддоммен сайта:
    • .htaccess — настройки для работы с ЧПУ под Apache;
    • index.php — сам скрипт сокращалки;
    • style.min.css — таблица стилей.
  2. Откройте файл index.php, раскомментируйте (уберите «//» в начале строки) и пропишите требуемые значения для нужных опций:
    • SHORTURL — URL отправной точки (если опция не задана, создаётся «на лету»);
    • SHORTFURL — ЧПУ (если опция не задана: false):
      • true — включить (если mod_rewrite есть — простой ЧПУ, иначе — красивый URL),
      • false — выключить (красивый URL, иначе — через параметры),
      • строка с %action%, например: %action%.html;
    • PASSWORD — пароль в MD5 (если опция не задана: 12345);
    • FILENAME — имя файла БД (если опция не задана: db.sqlite) или строка подключения к БД (надо допиливать).
  3. Обратитесь к скрипту по месту нахождению, введите пароль и сокращайте ссылки.

Скачать бесплатно

Последнюю версию short 3.1.1 lite можете бесплатно скачать по этой ссылке.

Версии:

  • 3.1.1 (8 февраля 2016) 6Кб
  • 2.0 (12 июня 2014) 12Кб
  • 1.0 (28 октября 2013) 2Кб

Короткая ссылка: http://goo.gl/k2ZP72

Максим
Максим комментирует...

Заманчиво, но я предпочитаю ставить прямые ссылки, даже если URL очень длинный и включает в себя кириллицу. Сейчас пользователи слабо доверяют всяким сокращениям, т.к. под ними может скрываться ссылка на страницу с вирусом, рекламой и т.д.

С другой стороны, я неоднократно встречал короткие ссылки в виде естественного URL, как бы на обзор сервиса или чего-то в этом роде. Предложенный php-скрипт в этом плане можно доработать, и получится нечто подобное, стоит попробовать. Правда многое будет зависит от того, насколько пользователи доверяют конкретному блогу или любому другому сайту.

Константин Кирилюк
Константин Кирилюк комментирует...

Интересную сторону вопроса вы затронули. Безусловно, доверие пользователей к конкретному автору играет далеко немаловажную роль. И тут мы возвращаемся к вопросу нюансов человеческой психологии, которые вы затронули в моей статье о спорах.

Progmed
Progmed комментирует...

Почему бы не выложить скрипт на Github?

Константин Кирилюк
Константин Кирилюк комментирует...

2Progmed можно и на Github, но я с ним никогда не работал. Главное, что скрипт общедоступен, а остальное имхо фигня.

Роман Фещенко
Роман Фещенко комментирует...

Хороший и простой скрипт, но возникло два вопроса. 1. Как заменить index.php допустим на short.php чтоб не мешало основным файлам? 2. Как настроить так чтобы генерировать только цифровые сокращения? Заранее благодарен!

Константин Кирилюк
Константин Кирилюк комментирует...

2Роман Фещенко
1. по сути скрипт рассчитан на то, что будет работать на поддомене или находиться в папке... можно конечно переименовать index.php на любое другое имя и прописать в .htaccess вместо:

RewriteRule ^(.*)$ index.php?furl=$1 [L,QSA]

например:

RewriteRule ^(.*)$ short.php?furl=$1 [L,QSA]

но это по моему изврат.

2. сокращения можно вводить вручную при добавлении... ну а так смотрите:

14 строка в includes\add.php и 28 строка в includes/edit.php:

if ( empty($url_short) ) $url_short = substr(md5($url_long), 0, 5);

именно это условие отвечает за генерацию сокращения, если таковое не указано.

Роман Фещенко
Роман Фещенко комментирует...

К сожалению так исключается возможность загрузки движка из корня. В общем ситуация такая, есть url'ы такого вида, lvov.moymagazin.com/samiy-luchshiy-tovar-sezona, нужно получать короткие ссылки вида moymagazin.com/457896 для быстрого набора. Возможно ли настроить Ваш скрипт таким образом?

Константин Кирилюк
Константин Кирилюк комментирует...

2Роман Фещенко скажу так: при создании скрипта я не рассматривал такой вариант его использования. Гораздо проще будет реализовать интеграцию коротких ссылок в сам движок, по тому же ID продукта в БД. Но здесь вам нужно обращаться к создателю движка своего магазина.

Роман Фещенко
Роман Фещенко комментирует...

Благодарен за ответ! Владельцам магазина эта функция не интересна. Это нужно мне как менеджеру для удобства, тогда как вариант вижу установку скрипта на поддомен и получать ссылки вида short.moymagazin.com/457896.

Константин Кирилюк
Константин Кирилюк комментирует...

2Роман Фещенко это самый оптимальный вариант... хотя, можно и в директорию, например: moymagazin.com/short/457896. К слову, более наглядным будет всё таки читаемое сокращение, например: moymagazin.com/short/ipad ;-)

Евгения Саморезова
Евгения Саморезова комментирует...

Как сделать чтобы генерировалось сразу много ссылок а не одна?

Константин Кирилюк
Константин Кирилюк комментирует...

2Евгения Саморезова В скрипте подобной функции нет и ничего подобного я не встречал, ведь это было бы неудобно — ищи потом какая короткая ссылка, какой длинной соответствует.

seoonly.ru
seoonly.ru комментирует...

Спасибо, что фри))

Алексей Сотников
Алексей Сотников комментирует...

Константин, можете мне помочь, сделать сокращатель ссылок для определенного сайта?

Константин Кирилюк
Константин Кирилюк комментирует...

2Алексей Сотников Качайте, устанавливайте и делайте… всё расписано по самые гланды и я не знаю, чем могу ещё помочь.

Михаил
Михаил комментирует...

Очень интересный и нужный скрипт.
Константин, скажите, можно ли использовать этот скрипт в своих целях.
Например встраивать в другие PHP системы и всячески изменять под свои нужды? Спасибо.

Константин Кирилюк
Константин Кирилюк комментирует...

2Михаил да, можно.

Ra Akm
Ra Akm комментирует...

Здравствуйте!

А можно каким-то образом использовать Ваш скрипт для массового самостоятельного сокращения ссылок при загрузке в БД?
Есть XML-файл, где одно из полей у категории - ссылка. Можно каким-то образом при занесении ссылки в MySQL её автоматом конвертнуть?
Спасибо заранее за ответ.

Константин Кирилюк
Константин Кирилюк комментирует...

2Ra Akm В этой версии нет импорта данных, но вы действительно можете сделать INSERT в таблицу links, которая имеет следующие поля:

id (integet) — уникальный авто-генерируемых идентификатор,
url_long (text) — длинная ссылка,
url_short (text) — фрагмент (идентификатор) короткой ссылки,
excerpt (text) — краткое описание,
clicks (integer) — количество кликов,
pubdate (integer) — дата публикации в секундах.

Для авто-генерации url_short я использую следующее решение:

$url_short = substr(md5($url_long . time()), 0, 5);

Виктор Рихтер
Виктор Рихтер комментирует...

Константин вы написали в своей статье что этот скрипт бесплатный, а есть платный? Можно в таком случае глянуть на платную версию? Я бы возможно купил.

Константин Кирилюк
Константин Кирилюк комментирует...

2Виктор Рихтер Была идея развить тему, но я её пока не осилил.

Sibroy
Sibroy комментирует...

Пагинация нужна,или поиск...

Константин Кирилюк
Константин Кирилюк комментирует...

2Sibroy Дарёному коню в зубы не смотрят ))) Думал сделать это в платной версии, но лень )))

Unknown
Unknown комментирует...

Что-то не работает скрипт. В демке ввожу адрес этой страницы и мне пишет "Длинный URL неправильный."

Константин Кирилюк
Константин Кирилюк комментирует...

2Unknown так может он и неправильный? Ну, там http не указан или ещё чего...

Nikita Kulagin
Nikita Kulagin комментирует...

Кириллица работает, спасибо!

Геннадий Васильев
Геннадий Васильев комментирует...

Скрипт шикарный. Но было бы вообще превосходно, если бы в нём уже изначально встроена авто конвертация имеющихся ссылок.
Имею ввиду похожее примерно на это: например, открываешь любую страницу, куда подключен этот скрипт, потом в момент загрузки страницы скрипт сам брал бы по какому-нибудь алгоритму ссылку и сразу после загрузки страницы, уже выдавал бы итоговую сокращённую ссылку.

Константин Кирилюк
Константин Кирилюк комментирует...

Для этого всё равно нужно быть авторизованным, а попытка продлить сессию авторизации — дополнительная уязвимость, так что я не стал заморачиваться.