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

Если вы являетесь активным постером, любите заливать большое количество контента на популярные файлообменники, то вас непременно посещала мысль сокращения слишком длинных ссылок и преобразования их в красивый вид. Но такая процедура является очень трудоемкой ввиду невозможности группового сокращения ссылок в сервисах, аналогичных 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>


 

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

Посмотрите также

Автозамена в word. Как быстро заменять слова в тексте?

В каждом текстовом редакторе существует такая функция как автозамена. Данная функция используется для того, чтобы …