[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сокращение ссылок на php
Страницы: 1, 2
wartes
Здравствуйте уважаемые программисты !
В сети не нашел решения проблемы ..
на сайте есть большое количество ссылок с длинными адресами (анкорами), как собственно сократить текст ссылок без онлайн сервисов ...
Есть ли функции (движок вп)
Игорь_Vasinsky
да хоть джумла. нужен модуль - пиши модуль.

а сократить просто:


На примере если список урлов и шорт урлов храняться в файле (разумеется хранить нужно в БД)

function shortLink($url){
$chars = preg_split('#\s#', 'a b c d i f g j k l m n o p r s t q v x y z');
$res = null;
$rand_keys = array_rand($chars, 4);

foreach($rand_keys as $key)
$res .= $chars[$key];

$rand_dig = rand(100,1000);

//Склеили буквы и цифры
$res = $res.$rand_dig;

$res = str_shuffle($res);

//В файле храняться данные построчно в виде real_link||short_link
$dataLinks = file('links.txt');
//Получаю все короткие ссылки - чтобы не продублировать
if($dataLinks){
foreach($dataLinks as $k=>$v){
$links[] = $k;
$all_short_links[] = $v;
}

//Если $url уже назначен короткий урл - выходим
if(in_array($url, $links))
return false;

if(!in_array($res, $all_short_links))
file_put_contents('links.txt', $url.'||'.$res.PHP_EOL, FILE_APPEND);
else
shortLink($url);
}
else
file_put_contents('links.txt', $url.'||'.$res.PHP_EOL, FILE_APPEND);

return true;

}


shortLink('http://phpforum.ru/index.php?showtopic=74517&hl=');

появился shortlink

http://phpforum.ru/index.php?showtopic=74517&hl=||4tx06vd

теперю нужно обратиться

http://site.com/4tx06vd (Это чпу - на сам деле http://site.com&su=4tx06vd )

и тут обработчик index.php + htaccess (rules)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.