-
Notifications
You must be signed in to change notification settings - Fork 2
/
shink.me.php
34 lines (33 loc) · 1.16 KB
/
shink.me.php
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
<?php
/**
* Acortar con shink.me
* @author parzibyte.me/blog
*/
function shinkme($enlace)
{
$clave = "TU_CLAVE_AQUÍ";
$id = "TU_ID_AQUÍ";
$raw = file_get_contents(
"https://shon.xyz/api/0/id/"
. urlencode($id)
. "/auth_token/"
. urlencode($clave)
. "?s=" . urlencode($enlace));
if (false === $raw) {
throw new \Exception("Error obteniendo JSON de shink.me");
}
$respuesta = json_decode($raw);
# Comprobar si no hay errores
if (isset($respuesta->error) && $respuesta->error === 0) {
# Ahora este es el acortado, pero vamos a ver si coincide con una expresión regular
$acortado = "http://shink.me/" . $respuesta->hash;
if (preg_match('/^http:\/\/shink\.me\/\w+$/', $acortado) !== 1)# En caso de que no coincida
throw new Exception("Enlace inesperado al acortar con shink.me: " . $acortado);
return $acortado; #En caso de que sí regresamos el acortado
} else {
throw new Exception("Error al acortar $enlace con shink.me. #Error: " . $respuesta->error);
}
}
$enlaceAcortado = shinkme("https://parzibyte.me/blog");
echo $enlaceAcortado;
?>