Учимся быстро сокращать ссылки. Упрощаем продвижение сайта в социальных сетях

  • 21 Ноябрь 2011
  • Артем
  • 4 комментариев


Если вы являетесь активным постером, любите заливать большое количество контента на популярные файлообменники, то вас непременно посещала мысль сокращения слишком длинных ссылок и преобразования их в красивый вид. Но такая процедура является очень трудоемкой ввиду невозможности группового сокращения ссылок в сервисах, аналогичных Tinyurl. А вы не задавались вопросом: почему бы не автоматизировать процесс сокращения ссылок и не сокращать их каждый раз вручную для того, чтобы сделать анонс статьи в twitter. Если да, то попробуем написать маленький php скриптик сокращения ссылок с помощью сервиса Tinyurl.
Для начала разберем действия нашего скрипта для «общения» с сервисом:1) получаем подлежащую сокращению ссылку из файла или диалоговой формы;2) соединяемся с сервисом и отправляем запрос;3) получаем ответ сервиса с сокращенной ссылкой и выводим результат.Приступим к написанию, для этого нам понадобится любой текстовый редактор. Создаем новый текстовый файл с расширением php и набираем в нем теги начала и конца сценария. Затем, нам необходимо задать время для ориентировочного выполнения скрипта – все зависит от количества предоставляемых скрипту данных из файла со ссылками. Предположим, что выполнение скрипта должно длиться порядка 120 секунд, записываем:


set_time_limit(120); // данная функция задает работу скрипта в 120 секунд, в то время как по умолчанию время на выполнение скрипта php отводится 30 секунд


Далее считываем данные из файла ссылок или формы:


$url=str_replace(“rn”,””,file(“urls.txt”)); // где “urls.txt” – есть файл со ссылками для сокращения, а $url является массивом строк

$url=str_replace(“rn”,””,$_POST[‘urls’]); // здесь данные из формы передаются массиву $url


Для варианта работы с формой нужно создать дополнительную html страничку ввода ссылок в текстовое поле следующего вида:

<html><head><meta http-equiv=Content-Type content=”text/html; charset=windows-1251″><title>Сокращаем работу</title></head><body>

<form action=job.php method=post>Введите ссылки через ENTER:<br><textarea name= urls rows=15 cols=50></textarea><br><input type=submit value=Запуск>

</body></html>


В данном случае форма из html страницы передает данные методом POST в скрипт обработки job.php, который мы пишем. Все файлы должны находиться в одном каталоге на сервере, иначе будет необходимо указывать путь к скрипту обработки формы, либо файлу urls.txt.После завершения всех действий по созданию html страницы либо текстового файла, возобновим работу с нашим скриптом. Определим число ссылок в файле или переданной переменной POST:

$ur=count($url); // переменная присваивает количество элементов массива $url


Далее выводим полезную информацию:


echo “Скрипт сокращает ссылки через сервис <b>tinyurl.com</b>.<br>”;

echo “Время запуска: “.date(‘h:i:s’).”<br>Ссылок: “.$ur.”<br>”; // здесь, точка используется для соединения нескольких подстрок (переменных) в одну большую строку


Запускаем цикл отправки данных на сервер:


for($a=0;$a<$ur;$a++) { // цикл из $ur подборов с шагом 1 ($a++)


Формируем GET запрос к сервису Tinyurl:


$param=”?source=indexpage&url=”.$url[$a].”&submit=Make%20TinyURL%21″;

$head=”GET http://tinyurl.com/create.php”.$param.” HTTP/1.0rnrn”; // переменная будет передавать на сервер данные для обработки


Далее, нам нужно открыть соединение, чтобы направить запрос:


$sock=fsockopen(“tinyurl.com”,80,$errno,$errstr,12); // отправка запроса $head на сервер tinyurl.com через 80 порт, таймаут соединения 12 секунд


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


if(!$sock){echo “Ошибка: “.$errno.” – “.$errstr.”<br>”;} // если $sock передает FALSE, значит, произошла ошибка подключения и нужно вывести отчет об ошибке


В альтернативном случае нам нужно передать данные на сервер и считать его ответ:

else{

fputs($sock,$head); // отправка GET запроса

$ans=false; // строка со ссылкой ответа сервера Tinyurl


Будем считывать ответ построчно до получения строки со ссылкой:


while($ans===false){ // повторяем, пока не будет найдена часть ссылки

$pre=fgets($sock); // получаем строку файла

$ans=strpos($pre,”</b><br><small>[<a href=”http://tinyurl.com/”);} // находим подстроку со ссылкой

$pans=mb_substr($pre,$ans,51); // вытаскиваем подстроку со ссылкой, длиной 51 символ

$ost=substr($pans,25); // выбираем ссылку длиной 25 символов

echo “<br>”.htmlspecialchars($ost,ENT_QUOTES);}} // выводим ссылку на экран

echo “<br><br>Готово.”;

?>


Наш скрипт готов, теперь сохраняем файл (job.php). Данный скрипт очень полезен в seo и продвижении сайтов, осталось его правильно настроить и пользоваться.Что же дальше? Здесь есть два варианта: 1) у вас есть платный хостинг – загружаем туда наши файлы (job.php и urls.txt или job.php и urls.htm) и запускаем в браузере скрипт; 2) у вас нет платного хостинга – сделаем виртуальный хостинг на своей машине. Как это сделать? – спросите вы, легко – будем использовать бесплатную программу Denwer для создания выделенного сервера ничем не уступающего платному хостингу. Для начала скачиваем программу с официального сайта разработчика (введете в вашем любимом поисковике строку «Denwer» и непременно найдете сайт разработчика), затем установим скачанный EXE файл себе на компьютер. Установка очень простая, тем более она подробно описана на сайте программы. Плюс данной программы – она не оставляет следов своей работы в реестре и на диске, для удаления нужно всего лишь завершить работу виртуального сервера и удалить папку WebServers. Копируем файлы скрипта по следующему адресу: WebServers/home/test1.ru/www/ – в этой папке уже находится один файл index.htm, который нам не помешает. Если вы используете вариант с текстовым файлом urls.txt, то не забудьте в него скопировать ссылки для сокращения, каждую с новой строки. Затем, запускаем виртуальный сервер – кликаем по ярлыку «Start Denwer» на рабочем столе, открываем любимый браузер и пишем в адресную строку следующее:1. http://test1.ru/job.php – если копировали job.php и urls.txt;2. http://test1.ru/urls.htm – если копировали job.php и urls.htm.

Во втором случае нужно скопировать все сокращаемые ссылки через Enter в окно формы и нажать кнопку «Запуск». После окончания работы скрипта на экране появится список уже сокращенных ссылок. Спасибо за внимание, ниже приведем полный код файлов job.php и urls.htm:

«job.php»


<?php

set_time_limit(66);

$url=str_replace(“rn”,””,file(“urls.txt”));

$ur=count($url);

echo “Скрипт сокращает ссылки через сервис <b>tinyurl.com</b>.<br>”;

echo “Время запуска: “.date(‘h:i:s’).”<br>Ссылок: “.$ur.”<br>”;

for($a=0;$a<$ur;$a++)

{

$param=”?source=indexpage&url=”.$url[$a].”&submit=Make%20TinyURL%21″;

$head=”GET http://tinyurl.com/create.php”.$param.” HTTP/1.0rnrn”;

$sock=fsockopen(“tinyurl.com”,80,$errno,$errstr,12);

if(!$sock){echo “Ошибка: “.$errno.” – “.$errstr.”<br>”;}

else{

fputs($sock,$head);

$ans=false;

while($ans===false){

$pre=fgets($sock);

$ans=strpos($pre,”</b><br><small>[<a href=”http://tinyurl.com/”);

}

$pans=mb_substr($pre,$ans,51);

$ost=substr($pans,25);

echo “<br>”.htmlspecialchars($ost,ENT_QUOTES);

}

}

echo “<br><br>Готово.”;

?>


«urls.htm»


<html><head><meta http-equiv=Content-Type content=”text/html; charset=windows-1251″><title>Сокращаем работу</title></head><body>

<form action=job.php method=post>Введите ссылки через ENTER:<br><textarea name= urls rows=15 cols=50></textarea><br><input type=submit value=Запуск>

</body></html>


 

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

Комментариев: 4

    • LinkAc
    • Январь 17 2013 в 21:20

    Рекомендую еще один сервис сокращения ссылок http://link.ac с возможность просматривать статистику по переходам, а также получит QR код ссылки.

    Ответить

    • bobb
    • Февраль 23 2014 в 23:40

    Что можете сказать про _hec.su ? Относительно недавно его увидел, легкий и понятный. Ваше мнение? Вроде как абузоустойчивый, реферальные и подобные ссылки разрешают и не удаляют.

    Ответить

    • Николай
    • Июнь 4 2014 в 7:12

    А как сокращённые ссылки влияют на продвижение сайтов?

    Ответить

    Артем
    Июнь 6 2014 в 11:28

    Никак, вес они не передают.

    Ответить

Написать комментарий

  • rss
  • rss
  • rss
  • rss