PHP-скрипт для сокращения ссылок — short 3.1.1 lite
Если функционала таких сервисов как goo.gl, bit.ly и прочее вам недостаточно — скачайте бесплатно 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
Установка и настройка
- Скачайте архив по ссылке ниже, распакуйте его содержание в отдельную папку, на домен или поддоммен сайта:
- .htaccess — настройки для работы с ЧПУ под Apache;
- index.php — сам скрипт сокращалки;
- style.min.css — таблица стилей.
- Откройте файл index.php, раскомментируйте (уберите «
//
» в начале строки) и пропишите требуемые значения для нужных опций: SHORTURL
— URL отправной точки (если опция не задана, создаётся «на лету»);SHORTFURL
— ЧПУ (если опция не задана: false):- true — включить (если mod_rewrite есть — простой ЧПУ, иначе — красивый URL),
- false — выключить (красивый URL, иначе — через параметры),
- строка с %action%, например: %action%.html;
PASSWORD
— пароль в MD5 (если опция не задана: 12345);FILENAME
— имя файла БД (если опция не задана: db.sqlite) или строка подключения к БД (надо допиливать).- Обратитесь к скрипту по месту нахождению, введите пароль и сокращайте ссылки.
Скачать бесплатно
Последнюю версию short 3.1.1 lite можете бесплатно скачать по этой ссылке.
Версии:
Короткая ссылка: http://goo.gl/k2ZP72
Заманчиво, но я предпочитаю ставить прямые ссылки, даже если URL очень длинный и включает в себя кириллицу. Сейчас пользователи слабо доверяют всяким сокращениям, т.к. под ними может скрываться ссылка на страницу с вирусом, рекламой и т.д.
С другой стороны, я неоднократно встречал короткие ссылки в виде естественного URL, как бы на обзор сервиса или чего-то в этом роде. Предложенный php-скрипт в этом плане можно доработать, и получится нечто подобное, стоит попробовать. Правда многое будет зависит от того, насколько пользователи доверяют конкретному блогу или любому другому сайту.
Интересную сторону вопроса вы затронули. Безусловно, доверие пользователей к конкретному автору играет далеко немаловажную роль. И тут мы возвращаемся к вопросу нюансов человеческой психологии, которые вы затронули в моей статье о спорах.
Почему бы не выложить скрипт на 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Евгения Саморезова В скрипте подобной функции нет и ничего подобного я не встречал, ведь это было бы неудобно — ищи потом какая короткая ссылка, какой длинной соответствует.
Спасибо, что фри))
Константин, можете мне помочь, сделать сокращатель ссылок для определенного сайта?
2Алексей Сотников Качайте, устанавливайте и делайте… всё расписано по самые гланды и я не знаю, чем могу ещё помочь.
Очень интересный и нужный скрипт.
Константин, скажите, можно ли использовать этот скрипт в своих целях.
Например встраивать в другие PHP системы и всячески изменять под свои нужды? Спасибо.
2Михаил да, можно.
Здравствуйте!
А можно каким-то образом использовать Ваш скрипт для массового самостоятельного сокращения ссылок при загрузке в БД?
Есть 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Виктор Рихтер Была идея развить тему, но я её пока не осилил.
Пагинация нужна,или поиск...
2Sibroy Дарёному коню в зубы не смотрят ))) Думал сделать это в платной версии, но лень )))
Что-то не работает скрипт. В демке ввожу адрес этой страницы и мне пишет "Длинный URL неправильный."
2Unknown так может он и неправильный? Ну, там http не указан или ещё чего...
Кириллица работает, спасибо!
Скрипт шикарный. Но было бы вообще превосходно, если бы в нём уже изначально встроена авто конвертация имеющихся ссылок.
Имею ввиду похожее примерно на это: например, открываешь любую страницу, куда подключен этот скрипт, потом в момент загрузки страницы скрипт сам брал бы по какому-нибудь алгоритму ссылку и сразу после загрузки страницы, уже выдавал бы итоговую сокращённую ссылку.
Для этого всё равно нужно быть авторизованным, а попытка продлить сессию авторизации — дополнительная уязвимость, так что я не стал заморачиваться.
Так и не смог даже протестировать. И гугл вводил и яндекс. И свой сайт. Толку никакого. Пишет "Длинный URL неправильный". Хоть бы ссылка появилась, а какой собственно правильный. Записал по этому поводу видео. https://youtu.be/eKhheDDtfls
Спасибо за видео. Да, есть ошибка.
1) откройте index.php
2) Найдите фрагмент кода:
if(filter_var($url,FILTER_VALIDATE_URL)===false)
3) Замените его кодом:
if(filter_var($url_long,FILTER_VALIDATE_URL)===false)
P.S. Там 2 таких фрагмента (для добавления и редактирования ссылки). Будет время, выложу исправленную версию.
Скрипт супер, как раз похожий искал. Большое спасибо.
Одно не понимаю: где хранятся ссылки и как долго?
Ссылки хранятся в создаваемой при первой инициации скрипта базе данных db.sqlite, поэтому перенести её очень просто, не нужно ничего экспортировать, импортировать и прочее.
Сори, затупил. Одно жалко, что показывает только общее количество кликов. Хотелось бы, чтоб считал количество кликов в день, месяц. Может реализуете, если не сложно? Готов немножко проспонсировать.
Вся суть скрипта - минимализм. Я даже хочу его ещё больше упростить.
как удалить "?" из урл?
и еще вопрос. как сделать так, чтобы урл формировался не относительно папки, а относительно корня. то есть не site.ru/url/fjl3, а site.ru/fjl3? При этому скрипт в корень установить нельзя.
Для использования ЧПУ нужно убрать "//" перед define('SHORTFURL', true); т.е. раскоментировать её.
Чтобы получить адрес относительно корня, нужно скрипт залить в корневую папку, и никак иначе.
Я не про ЧПУ имел ввиду, а как просто убрать знак "?" из url, то есть урл формировался автоматически, но без знака вопроса?
Знак вопроса в короткой ссылке говорит о том, ЧПУ не используется, т.е. работает вариант с $_SERVER['QUERY_STRING']
Спасибо! Очень приятный скрипт! Забрал себе, слежу за обновлениями! Статистику бы конечно побольше, например точки открытия на карте и по датам.
Спасибо еще раз!
совсем новичок и никак не поставлю себе на сайт скрипт, хотя это что искал; подробную бы инструкцию
Я не знаю куда подробней, сорь
Добрый день!
Спасибо за скрипт, подскажите, а как можно немного перепилить его, что бы добавлять и видеть то что сейчас добавил без пароля, а вот полную статистику по паролю - как бы открыть добавление и вывод текущей ссылки для публичного доступа.