ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

извращенное минифицирование кода, часть 5
  #1  
Старый 04.02.2009, 14:50
Аватар для Дикс
Дикс
Познавший АНТИЧАТ
Регистрация: 16.04.2006
Сообщений: 1,488
Провел на форуме:
2209675

Репутация: 537


Отправить сообщение для Дикс с помощью ICQ
По умолчанию извращенное минифицирование кода, часть 5

я раньше создавал подобные темы, вроде штуки 4, где предлагалось уменьшить насколько это возможно какой-либо и без того простой код.

сегодня появился повод создать новую тему, и может быть это послужит стимулом в появлении подобных тем за чужим авторством

итак, сегодня у нас на рассмотрении функция получения ТИц Яндекса для текущего хоста.

Что было:
PHP код:
<?
function get_cy ($domain)
{
$path="http://bar-navig.yandex.ru/u?ver=2&lang=1049&url=http://".$domain."&target=_No__Name:5&show=1&thc=0";
$file=file($path);
for (
$i=1;$i<count($file);$i++)
if (
strpos ($file[$i],"tcy rang"))
    {
$begin=strpos($file[$i],"value=\"");
$end=strpos($file[$i],"\"",$begin+7);
$cy=substr($file[$i],0,$end);
$cy=substr($cy,$begin+7);
if (
$cy>10) return $cy; else return 0;
}
}
?>
брр.. ужаснейший говнокод, особенно если учесть что страница выдаётся в виде xml.
Мой вариант получения ТИц:
PHP код:
function get_cy(){
  return 
simplexml_load_string(file_get_contents("http://bar-navig.yandex.ru/u?ver=2&lang=1049&url=http://{$_SERVER['SERVER_NAME']}&target=_No__Name:5&show=1&thc=0"))->tcy->attributes()->rang;

Вам предлагается либо уменьшить то, что я уже написал, либо написать вменяемую версию получения PR Гугла. На данный момент имеется вот такой ужас:
PHP код:
<?
define
('GOOGLE_MAGIC'0xE6359A60);

//unsigned shift right
function zeroFill($a$b)
{
$z hexdec(80000000);
if (
$z $a)
{
$a = ($a>>1);
$a &= (~$z);
$a |= 0x40000000;
$a = ($a>>($b-1));
}
else
{
$a = ($a>>$b);
}
return 
$a;
}

function 
mix($a,$b,$c) {
$a -= $b$a -= $c$a ^= (zeroFill($c,13));
$b -= $c$b -= $a$b ^= ($a<<8);
$c -= $a$c -= $b$c ^= (zeroFill($b,13));
$a -= $b$a -= $c$a ^= (zeroFill($c,12));
$b -= $c$b -= $a$b ^= ($a<<16);
$c -= $a$c -= $b$c ^= (zeroFill($b,5));
$a -= $b$a -= $c$a ^= (zeroFill($c,3)); 
$b -= $c$b -= $a$b ^= ($a<<10);
$c -= $a$c -= $b$c ^= (zeroFill($b,15));

return array(
$a,$b,$c);
}

function 
GoogleCH($url$length=null$init=GOOGLE_MAGIC) {
if(
is_null($length)) {
$length sizeof($url);
}
$a $b 0x9E3779B9;
$c $init;
$k 0;
$len $length;
while(
$len >= 12) {
$a += ($url[$k+0] +($url[$k+1]<<8) +($url[$k+2]<<16) +($url[$k+3]<<24));
$b += ($url[$k+4] +($url[$k+5]<<8) +($url[$k+6]<<16) +($url[$k+7]<<24));
$c += ($url[$k+8] +($url[$k+9]<<8) +($url[$k+10]<<16)+($url[$k+11]<<24));
$mix mix($a,$b,$c);
$a $mix[0]; $b $mix[1]; $c $mix[2];
$k += 12;
$len -= 12;
}

$c += $length;
switch(
$len/* all the case statements fall through */
{
case 
11$c+=($url[$k+10]<<24);
case 
10$c+=($url[$k+9]<<16);
case 
$c+=($url[$k+8]<<8);
/* the first byte of c is reserved for the length */
case $b+=($url[$k+7]<<24);
case 
$b+=($url[$k+6]<<16);
case 
$b+=($url[$k+5]<<8);
case 
$b+=($url[$k+4]);
case 
$a+=($url[$k+3]<<24);
case 
$a+=($url[$k+2]<<16);
case 
$a+=($url[$k+1]<<8);
case 
$a+=($url[$k+0]);
/* case 0: nothing left to add */
}
$mix mix($a,$b,$c);
/*-------------------------------------------- report the result */
return $mix[2];
}

//converts a string into an array of integers containing the numeric value of the char
function strord($string) {
for(
$i=0;$i<strlen($string);$i++) {
$result[$i] = ord($string{$i});
}
return 
$result;
}

function 
get_pr($url) {
$result=array("",-1);

if ((
$url.""!="")&&($url.""!="http://")):
// check for protocol 
if (substr(strtolower($url),0,7)!="http://"):
$url="http://".$url;
endif;

$url="info:".$url;
$checksum=GoogleCH(strord($url));
$google_url=sprintf("http://www.google.com/search?client=navclient-auto&ch=6%u&features=Rank&q=".$url,$checksum); // url to get from google 
$contents="";

$handle fopen($google_url"rb");
$contents '';
while (!
feof($handle)) {
  
$contents.= fread($handle8192);
}
fclose($handle);
$p=explode(":",$contents);
if (isset(
$p[2])):
$result[1]=$p[2];
endif;
endif;

return 
$result;
}

function 
getPR_url($url)
{
  global 
$db;

  if (
eregi('^http://www.',$url)) {
   
$url_www str_replace('http://www.','http://',$url);
  } else {
   
$url_www str_replace('http://','http://www.',$url);
  }

  
$pr=get_pr($url);
  
$output=$pr[0];
  
$pagerank=$pr[1];
  
sleep(1);
  
$pr=get_pr($url_www);
  
$output_www=$pr[0];
  
$pagerank_www=$pr[1];

  if (
$pagerank<$pagerank_www) {
   
$pagerank=$pagerank_www;
  }
  if (
$pagerank==-1) {
   
$pagerank=0;
  }
 return 
intval($pagerank);
}
?>
 
Ответить с цитированием

  #2  
Старый 04.02.2009, 14:57
Аватар для preda1or
preda1or
Участник форума
Регистрация: 27.10.2008
Сообщений: 278
Провел на форуме:
1495545

Репутация: 242
Отправить сообщение для preda1or с помощью ICQ
По умолчанию

Цитата:
GOOGLE_MAGIC
реально...
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Секреты Gsm КероСиН Сотовый фрикинг 17 30.08.2007 21:01
SQL инъекция и Oracle, часть 2 k00p3r Чужие Статьи 0 13.06.2005 11:24
Внедрение Sql кода с завязанными глазами k00p3r Чужие Статьи 0 12.06.2005 20:48
Внедрение Sql кода с завязанными глазами, часть 2 k00p3r Чужие Статьи 0 12.06.2005 20:45



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ