php Пример скрипта выдающего ссылку Priler com _GET get_link_by_id сод

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
//Пример скрипта, выдающего ссылку @Priler.com
//В $_GET['get_link_by_id'] содержится ID ссылки
if(!isset($_GET['get_link_by_id'])){
//В это блоке кода выполняем операцию получения ID нужной ссылки и выдаем ее программе
//Получаем ID ссылки, которую нужно проверить, и продолжаем...
//Скрипт должен вернуть слово empty в том случае, если ссылок на данный момент нет
$processing_tasks = $DataBase->Query("SELECT * FROM `token_tasks` WHERE `status`='inwork' AND `last_call` < '".time()."' ORDER BY `id` LIMIT 0,1");
if($link=mysql_fetch_array($processing_tasks))
{
//Ссылка есть, выдаем ее ID
$processing_tasks = $DataBase->PDOQuery("SELECT * FROM `tasks` WHERE `id`=?",$link['task_id']);
$link_real=$processing_tasks->fetch();
if($link_real){
exit($link_real['id']);
}
}
else
//Ссылки нет, сообщаем об этом программе специальным зарезервированным словом
exit('empty');
}
else{
//В этом блоке кода выдаем непосредственно саму ссылку по переданному программой параметру $_GET['get_link_by_id']
//Получаем ссылку по ID и продолжаем...
//Скрипт должен вернуть слово empty в том случае, если ссылка на данный момент не нуждается в проверке индексации
$processing_tasks = $DataBase->PDOQuery("SELECT * FROM `tasks` WHERE `id`=?",$_GET['get_link_by_id']);
$link_real=$processing_tasks->fetch();
if($link_real)
{
//Фильтруем ссылку по 3м базовым этапам
//URL-Кодируем нужные символы ссылки
$link=strtr($link_real['params'],Array('&'=>'%26','?'=>'%3F'));
//Удаляем решетку/якорь из ссылки
if(strrpos($link,'#')!==false)
{
$link=substr_replace($link,'',strrpos($link,'#'));
}
//Удаляем последний слэш в ссылке, это необходимо для точности проверки индексации
//Ни в коем случае не убирайте операцию удаления финального слэша
//Т.к. тестовый скрипт в кодировке windows-1251, указываем эту кодировку для функции mb_strlen
if(strrpos($link,'/')==(mb_strlen($link,'windows-1251')-1))
{
$link=substr_replace($link,'',strrpos($link,'/'));
}
//Выдаем готовую, отфильтрованную ссылку программе
exit('url:'.urlencode($link));
}
else
//Ссылка не нуждается в проверке на данный момент, сообщаем об этом программе специальным зарезервированным словом
exit('empty');
}