LinksPRO - Заламать!

Статус
В этой теме нельзя размещать новые ответы.
Там в многосайтовом модуле в cfg.php есть код:

PHP:
<?$_0OO=__FILE__;$_O0O=2;$_OOO=6235;eval(base64_decode("JF8wMDBPPUFycmF5KCk7Zm9yICgkXzBPT089OTc7JF8wT09PPDEyMzskXzBPT08rKykgJF8wMDBPW109Y2hyKCRfME9PTyk7Zm9yICgkXzBPT089NjU7JF8wT09PPDkxOyRfME9PTysrKSAkXzAwME9bXT1jaHIoJF8wT09PKTskXzAwMDA9aW1wbG9kZSgiIiwkXzAwME8pOyRfT08wPWZvcGVuKCRfME9PLCJyYiIpO2ZzZWVrKCRfT08wLCRfTzBPLFNFRUtfU0VUKTskXzAwMD1mcmVhZCgkX09PMCwkX09PTyk7ZmNsb3NlKCRfT08wKTskXzAwT089Ii8qTFBSIi5zdHJfcGFkKCRfTzBPLDYsU1RSX1BBRF9MRUZULCIwIik7JF8wTzA9c3RycG9zKCRfMDAwLCRfMDBPTyk7JF8wME89c3Vic3RyKCRfMDAwLCRfME8wKzExLDUyKTskXzAwMD1zdWJzdHIoJF8wMDAsJF8wTzArNjMsc3RycG9zKCRfMDAwLCIqLyIsJF8wTzArNjMpLSRfME8wLTYzKTskXzAwMD1iYXNlNjRfZGVjb2RlKHN0cnRyKCRfMDAwLCRfMDAwMCwkXzAwTykpO2V2YWwoJF8wMDApOw=="));/*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*/?>

Реально его раскодировать?
 
cfg.php:
PHP:
<?

require_once("classes.php");


$dn = $_SERVER["SCRIPT_NAME"];
if (!empty($_SERVER["DOCUMENT_NAME"]))
 {$dn = $_SERVER["DOCUMENT_NAME"];}

$_cfg = parse_ini_file("config.ini", false);

 // подсчитываем количество страниц для отображения
function num_pages($page, $messages_count, $messages_on_page)
{

 global $dn, $_cfg;

 if ($messages_count > $messages_on_page) {

 $pages = (int)($messages_count/$messages_on_page);
 if ($messages_count%($pages*$messages_on_page) != 0)
  {$pages++;}

 $start = ((int)(($page-1)/$_cfg["pages_on_row"]))*$_cfg["pages_on_row"];
 $end = $start+$_cfg["pages_on_row"];
 if ($pages < $start+$_cfg["pages_on_row"])
  {$end = $pages;}

 if (!empty($_SERVER["QUERY_STRING"])) {
   foreach ($_GET as $k => $v) {
    if ($k != "page") {
     if ($qs == "")
      {$qs .= $k."=".$_GET[$k];}
     else
      {$qs .= "&".$k."=".$_GET[$k];}
    }
   }
 }

 if (empty($qs))
  {$qs .= "?";}
 else
  {$qs = "?".$qs."&";}


 if ($start > 0)
  {print "<a href=".$dn.$qs."page=".$start.">...</a> &nbsp;|&nbsp; ";}

 for ($i = $start+1; $i <= $end; $i++) {
  if ($i == $page)
   {print "<b><font color=\"#DF0808\">".$i."</font></b> &nbsp;|&nbsp; ";}
  else
   {print "<a href=".$dn.$qs."page=".$i.">".$i."</a> &nbsp;|&nbsp; ";}
 }

 if ($pages > $start+$_cfg["pages_on_row"])
  {print "<a href=".$dn.$qs."page=".($start+$_cfg["pages_on_row"]+1).">...</a>";}

 }

}


function get_file_data($filename) {

  $data = "";
  if (file_exists($filename))
   {$data = implode("", file($filename));}
  return $data;

}

function save_file_data($filename, $data) {

  $f = fopen($filename, "w");
  fwrite($f, $data);
  fclose($f);

}

function write_to_ini_file($file_name, $var_name, $var_value)
{
  $f = @file($file_name);

  $str_exists = false;
  for ($i=0; $i<sizeof($f); $i++) {
   if (eregi($var_name."=", $f[$i])) {
    $f[$i] = $var_name."=\"".$var_value."\"\r\n";
    $str_exists = true;
    break;
   }
  }
  if (!$str_exists)
   {$f[] = $var_name."=\"".$var_value."\"\r\n";}

  $data = implode("", $f);

  save_file_data($file_name, $data);
}


function change_template($msg, $var_array)
{

foreach ($var_array as $k => $v) {
 $msg = eregi_replace("\{".$k."\}", (string)$v, $msg);
}

return $msg;

}

function change_mailtext($body)
{
  $body = ereg_replace("<", "%3c", $body);
  $body = ereg_replace(">", "%3e", $body);
  $body = ereg_replace("\r", "", $body);
  $body = ereg_replace("\n", "%0A", $body);
  $body = ereg_replace("<br>", "%0A", $body);
  $body = ereg_replace("\t", " ", $body);
  $body = ereg_replace("&", "%26", $body);
  $body = ereg_replace("'", "%27", $body);
  $body = ereg_replace("\"", "%22", $body);

  return $body;
}


function send_mail($from, $to, $subject, $body, $var_array) {

  $subject = change_template($subject, $var_array);

  $body = change_template($body, $var_array);

  print "<div style=\"display:none\">";
  print "<textarea name=\"mail_body\">".$subject."\r\n\r\n".$body."</textarea>";

  $subject = change_mailtext($subject);
  $body = change_mailtext($body);

  if (strlen($body) > 1800) {

   $mail_string = "mailto:".$to."?subject=".$subject;
   print "<a name=\"sendmail\" href=\"".$mail_string."\" onclick=\" if (mail_body.createTextRange().execCommand('Copy')) {alert('Письмо слишком велико для автоматического формирования. Тело письма скопировано в буфер (CTRL+V - для вставки).');}\" type=\"text/plain\" class=\"no_underline\">&nbsp;</a>";

  }
  else {

   $mail_string = "mailto:".$to."?subject=".$subject."&body=".$body;
   print "<a name=\"sendmail\" href=\"".$mail_string."\" onclick=\"mail_body.createTextRange().execCommand('Copy');\" type=\"text/plain\" class=\"no_underline\">&nbsp;</a>";

  }

  print "<script language='JavaScript'>";
  print "sendmail.click();";
  print "</script>";

  print "</div>";

}


$status = new class_filework;
$status->column_names = array("id", "name", "font");
$status->filename = "status.txt";
$status->fill_arrays();

?>

classes.php:
PHP:
<?
class class_filework{

  var $column_separator = "\t";
  var $filename = "";
  var $file_arrays = array(array());
  var $file_dir = "";
  var $column_names = array();
  var $id_column = "id";
  var $rows_count = 0;

  function fill_arrays() {

    for ($i=0; $i<sizeof($this->column_names); $i++)
     {$this->file_arrays[$this->column_names[$i]] = array();}

    $this->rows_count = 0;

    $f = @file($this->filename);
    if (empty($f)) {return false;}
    for ($i=0; $i<sizeof($f); $i++) {
     $m = explode($this->column_separator, $f[$i]);
     if (sizeof($m) >= sizeof($this->column_names)) {
       for ($j=0; $j<sizeof($this->column_names); $j++) {
        $m[$j] = ereg_replace("\r", "", $m[$j]);
        $m[$j] = ereg_replace("\n", "", $m[$j]);
        $this->file_arrays[$this->column_names[$j]][] = $m[$j];
       }
     }
    }
    $this->rows_count = sizeof($this->file_arrays[$this->id_column]);

  }

  function get_position($id) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    $p = -1;
    for ($i=0; $i<$this->rows_count; $i++) {
      if ($this->file_arrays[$this->id_column][$i] == $id) {
       $p = $i+1;
       break;
      }
    }
    return $p;

  }

  function get_value($id, $column) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    return $this->file_arrays[$column][$this->get_position($id)-1];

  }

  function set_value($id, $column, $value) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    $this->file_arrays[$column][$this->get_position($id)-1] = $value;

  }

  function set_position($id, $position) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    $p = $this->get_position($id);
    if ($position > sizeof($this->file_arrays[$this->id_column]))
     {$position = sizeof($this->file_arrays[$this->id_column]);}
    for ($i=0; $i<sizeof($this->column_names); $i++) {
      $a = array();
      $a = array_slice($this->file_arrays[$this->column_names[$i]], $p-1, 1);
      array_splice($this->file_arrays[$this->column_names[$i]], $p-1, 1);
      $b = array();
      $b = array_merge( array_slice($this->file_arrays[$this->column_names[$i]], 0, $position-1), $a, array_slice($this->file_arrays[$this->column_names[$i]], $position-1) );
      array_splice($this->file_arrays[$this->column_names[$i]], 0);
      $this->file_arrays[$this->column_names[$i]] = $b;
    }

  }

  function delete_position($id) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    $p = $this->get_position($id);
    for ($i=0; $i<sizeof($this->column_names); $i++) {
      array_splice($this->file_arrays[$this->column_names[$i]], $p-1, 1);
    }
    $this->rows_count--;

  }

  function get_free_id() {

    $i = 0;
    do {
      $i++;
    }  while (in_array($i, $this->file_arrays[$this->id_column]));
    return $i;

  }

  function add_value($column, $value) {

    $this->file_arrays[$column][] = $value;
    $this->rows_count = sizeof($this->file_arrays[$column]);

  }

  function save_file() {

    $data = "";
    for ($i=0; $i<$this->rows_count; $i++) {
     $s = "";
     for ($j=0; $j<sizeof($this->column_names); $j++) {
      if ($s == "")
       {$s = $this->file_arrays[$this->column_names[$j]][$i];}
      else
       {$s = $s.$this->column_separator.$this->file_arrays[$this->column_names[$j]][$i];}
     }
     $data = $data.$s."\r\n";
    }

    $f = fopen($this->filename, "w");
    fwrite($f, $data);
    fclose($f);

  }

  function get_id($column, $value) {

    if (!in_array($column, $this->column_names)) {return false;}
    $id = "";
    for ($i=0; $i<$this->rows_count; $i++) {
      if ($this->file_arrays[$column][$i] == $value) {
        $id = $this->file_arrays[$this->id_column][$i];
        break;
      }
    }
    return $id;

  }

  function array_output() {

    for ($i=0; $i<$this->rows_count; $i++) {
     $s = "";
     for ($j=0; $j<sizeof($this->column_names); $j++) {
      if ($s == "")
       {$s = $this->file_arrays[$this->column_names[$j]][$i];}
      else
       {$s = $s." - ".$this->file_arrays[$this->column_names[$j]][$i];}
     }
     print $s;
     print "<br>";
    }

  }

  function get_file_data($filename) {

    return implode("", file($filename));

  }

  function save_file_data($filename, $data) {

    $f = fopen($filename, "w");
    fwrite($f, $data);
    fclose($f);

  }


}

// ----------------------------------------------------------------

class class_links extends class_filework{

  var $status_column = "status";

  function get_deleted_link_id() {

    $id = "";
    for ($i=0; $i<$this->rows_count; $i++) {
      if ($this->file_arrays[$this->status_column][$i] == "1") {
       $id = $this->file_arrays[$this->id_column][$i];
       break;
      }
    }

    return $id;

  }

}

// ----------------------------------------------------------------

class class_templates extends class_filework {

  var $comment_column = "comment";

  function get_value($id, $column) {

    if ($column == $this->comment_column) {return $this->get_comment_file($id);}
    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    return $this->file_arrays[$column][$this->get_position($id)-1];

  }

  function set_value($id, $column, $value) {

    if ($column == $this->comment_column)
     {$this->save_comment_file($id, $value);}
    else {
     if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
     $this->file_arrays[$column][$this->get_position($id)-1] = $value;
    }

  }

  function delete_position($id) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    $this->delete_comment_file($id);
    $p = $this->get_position($id);
    for ($i=0; $i<sizeof($this->column_names); $i++)
     {array_splice($this->file_arrays[$this->column_names[$i]], $p-1, 1);}
    $this->rows_count--;

  }

  function add_value($column, $value) {

    if ($column == $this->comment_column) {
     $id = $this->file_arrays[$this->id_column][$this->rows_count-1];
     $this->save_comment_file($id, $value);
    }
    else {
     $this->file_arrays[$column][] = $value;
     $this->rows_count = sizeof($this->file_arrays[$column]);
    }

  }

  function delete_comment_file($id) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    if (file_exists($this->file_dir."/".$id.".txt"))
     {unlink($this->file_dir."/".$id.".txt");}

  }

  function get_comment_file($id) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    return $this->get_file_data($this->file_dir."/".$id.".txt");

  }

  function save_comment_file($id, $data) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    $this->save_file_data($this->file_dir."/".$id.".txt", $data);

  }

}

// ----------------------------------------------------------------

class class_part extends class_filework{

  var $parts_dir = "";

  function get_links_count($id, $status) {

    $l = new class_filework;
    $l->column_names = array("id", "name", "mail", "url_page", "url_site", "status", "date", "date_pub");
    $l->column_separator = $this->column_separator;
    $l->filename = $this->parts_dir."/parts_".$id.".txt";
    $l->fill_arrays();

    if ($status == -1)
     {$c = $l->rows_count;}
    else {
     $c = 0;
     for ($i=0; $i<$l->rows_count; $i++) {
       if ($l->file_arrays["status"][$i] == $status)
        {$c++;}
     }
    }

    unset($l);

    return $c;

  }

  function delete_position($id) {

    if (!in_array($id, $this->file_arrays[$this->id_column])) {return false;}
    $p = $this->get_position($id);
    for ($i=0; $i<sizeof($this->column_names); $i++) {
      array_splice($this->file_arrays[$this->column_names[$i]], $p-1, 1);
    }
    unlink($this->parts_dir."/parts_".$id.".txt");

  }

}

// ----------------------------------------------------------------

class class_partswork{

  var $main_filename = "";
  var $main_column_names = array();
  var $target_file_dir = "";
  var $target_file_prefix = "parts_";
  var $target_column_names = array();
  var $file_arrays = array(array());
  var $column_names = array();
  var $column_separator = "\t";
  var $main_id_column = "id_main";
  var $target_id_column = "id_target";
  var $target_status_column = "status";
  var $rows_count = 0;
  var $all_rows_count = 0;

  function fill_arrays() {

    $this->all_rows_count = 0;

    $this->column_names = array_merge($this->main_column_names, $this->target_column_names);

    for ($i=0; $i<sizeof($this->column_names); $i++)
     {$this->file_arrays[$this->column_names[$i]] = array();}

    $p = new class_part;
    $p->column_names = $this->main_column_names;
    $p->column_separator = $this->column_separator;
    $p->filename = $this->main_filename;
    $p->id_column = $this->main_id_column;
    $p->parts_dir = $this->target_file_dir;
    $p->fill_arrays();

    $h = 0;
    for ($i=0; $i<$p->rows_count; $i++) {

     $l = new class_filework;
     $l->column_names = $this->target_column_names;
     $l->column_separator = $this->column_separator;
     $l->filename = $this->target_file_dir."/".$this->target_file_prefix.$p->file_arrays[$p->id_column][$i].".txt";
     $l->id_column = $this->target_id_column;
     $l->fill_arrays();

     $this->all_rows_count = $this->all_rows_count + $l->rows_count;

     for ($j=0; $j<$l->rows_count; $j++) {

      for ($k=0; $k<sizeof($this->main_column_names); $k++)
       {$this->file_arrays[$this->main_column_names[$k]][] = $p->file_arrays[$this->main_column_names[$k]][$i];}
      for ($k=0; $k<sizeof($this->target_column_names); $k++)
       {$this->file_arrays[$this->target_column_names[$k]][] = $l->file_arrays[$this->target_column_names[$k]][$j];}

      $h++;

     }

     unset($l);

    }

    unset($p);

    $this->rows_count = sizeof($this->file_arrays[$this->main_id_column]);

  }

  function get_position($main_id, $target_id) {

    if (!in_array($main_id, $this->file_arrays[$this->main_id_column])) {return false;}
    if (!in_array($target_id, $this->file_arrays[$this->target_id_column])) {return false;}
    $p = -1;
    for ($i=0; $i<$this->rows_count; $i++) {
      if (($this->main_file_arrays[$this->main_id_column][$i] == $main_id)&&
          ($this->target_file_arrays[$this->target_id_column][$i] == $target_id)) {
       $p = $i+1;
       break;
      }
    }
    return $p;

  }

  function get_value($main_id, $target_id, $column) {

    if (!in_array($main_id, $this->file_arrays[$this->main_id_column])) {return false;}
    if (!in_array($target_id, $this->file_arrays[$this->target_id_column])) {return false;}
    return $this->file_arrays[$column][$this->get_position($main_id, $target_id)-1];

  }

  function set_value($main_id, $target_id, $column, $value) {

    if (!in_array($main_id, $this->file_arrays[$this->main_id_column])) {return false;}
    if (!in_array($target_id, $this->file_arrays[$this->target_id_column])) {return false;}
    $this->file_arrays[$column][$this->get_position($main_id, $target_id)-1] = $value;

  }

  function delete_position($main_id, $target_id) {

    if (!in_array($main_id, $this->file_arrays[$this->main_id_column])) {return false;}
    if (!in_array($target_id, $this->file_arrays[$this->target_id_column])) {return false;}
    $p = $this->get_position($main_id, $target_id);
    for ($i=0; $i<sizeof($this->column_names); $i++) {
      array_splice($this->file_arrays[$this->column_names[$i]], $p-1, 1);
    }

  }

  function get_links_count($status) {

    $count = 0;
    for ($i=0; $i<$this->rows_count; $i++) {
     if ($this->file_arrays[$this->target_status_column][$i] == $status)
      {$count++;}
    }
    return $count;

  }

  function save_file($main_id) {

    $data = "";
    for ($i=0; $i<$this->rows_count; $i++) {
     if ($main_id == $this->file_arrays[$this->main_id_column][$i]) {
      $s = "";
      for ($j=0; $j<sizeof($this->target_column_names); $j++) {
       if ($s == "")
        {$s = $this->file_arrays[$this->target_column_names[$j]][$i];}
       else
        {$s = $s.$this->column_separator.$this->file_arrays[$this->target_column_names[$j]][$i];}
      }
      $data = $data.$s."\r\n";
     }
    }

    $f = fopen($this->target_file_dir."/".$this->target_file_prefix.$main_id.".txt", "w");
    fwrite($f, $data);
    fclose($f);

  }

  function array_output() {

    for ($i=0; $i<$this->rows_count; $i++) {
     $s = "";
     for ($j=0; $j<sizeof($this->column_names); $j++) {
      if ($s == "")
       {$s = $this->file_arrays[$this->column_names[$j]][$i];}
      else
       {$s = $s." - ".$this->file_arrays[$this->column_names[$j]][$i];}
     }
     print $s;
     print "<br>";
    }

  }

  function get_file_data($filename) {

    return implode("", file($filename));

  }

  function save_file_data($filename, $data) {

    $f = fopen($filename, "w");
    fwrite($f, $data);
    fclose($f);

  }

}

// ----------------------------------------------------------------

class class_on_moderation extends class_partswork{

  function fill_arrays() {

    $this->all_rows_count = 0;

    $column_names = array_merge($main_column_names, $target_column_names);

    for ($i=0; $i<sizeof($this->column_names); $i++)
     {$this->file_arrays[$this->column_names[$i]] = array();}

    $p = new class_part;
    $p->column_names = $this->main_column_names;
    $p->column_separator = $this->column_separator;
    $p->filename = $this->main_filename;
    $p->id_column = $this->main_id_column;
    $p->parts_dir = $this->target_file_dir;
    $p->fill_arrays();

    for ($i=0; $i<$p->rows_count; $i++) {

     $l = new class_filework;
     $l->column_names = $this->target_column_names;
     $l->column_separator = $this->column_separator;
     $l->filename = $this->target_file_dir."/".$this->target_file_prefix.$p->file_arrays[$p->id_column][$i].".txt";
     $l->id_column = $this->target_id_column;
     $l->fill_arrays();

     $this->all_rows_count = $this->all_rows_count + $l->rows_count;

     for ($j=0; $j<$l->rows_count; $j++) {

      if ($l->file_arrays[$this->target_status_column][$j] == 2) {

       for ($k=0; $k<sizeof($this->main_column_names); $k++)
        {$this->file_arrays[$this->main_column_names[$k]][] = $p->file_arrays[$this->main_column_names[$k]][$i];}
       for ($k=0; $k<sizeof($this->target_column_names); $k++)
        {$this->file_arrays[$this->target_column_names[$k]][] = $l->file_arrays[$this->target_column_names[$k]][$j];}

      }

     }

     unset($l);

    }

    unset($p);

    $this->rows_count = sizeof($this->file_arrays[$this->main_id_column]);

  }

}

// ----------------------------------------------------------------

class class_violator extends class_partswork{

  function fill_arrays() {

    $this->all_rows_count = 0;

    $column_names = array_merge($main_column_names, $target_column_names);

    for ($i=0; $i<sizeof($this->column_names); $i++)
     {$this->file_arrays[$this->column_names[$i]] = array();}

    $p = new class_part;
    $p->column_names = $this->main_column_names;
    $p->column_separator = $this->column_separator;
    $p->filename = $this->main_filename;
    $p->id_column = $this->main_id_column;
    $p->parts_dir = $this->target_file_dir;
    $p->fill_arrays();

    for ($i=0; $i<$p->rows_count; $i++) {

     $l = new class_filework;
     $l->column_names = $this->target_column_names;
     $l->column_separator = $this->column_separator;
     $l->filename = $this->target_file_dir."/".$this->target_file_prefix.$p->file_arrays[$p->id_column][$i].".txt";
     $l->id_column = $this->target_id_column;
     $l->fill_arrays();

     $this->all_rows_count = $this->all_rows_count + $l->rows_count;

     for ($j=0; $j<$l->rows_count; $j++) {

      if ($l->file_arrays[$this->target_status_column][$j] == 1) {

       for ($k=0; $k<sizeof($this->main_column_names); $k++)
        {$this->file_arrays[$this->main_column_names[$k]][] = $p->file_arrays[$this->main_column_names[$k]][$i];}
       for ($k=0; $k<sizeof($this->target_column_names); $k++)
        {$this->file_arrays[$this->target_column_names[$k]][] = $l->file_arrays[$this->target_column_names[$k]][$j];}

      }

     }

     unset($l);

    }

    unset($p);

    $this->rows_count = sizeof($this->file_arrays[$this->main_id_column]);

  }

}

// ----------------------------------------------------------------

class class_search extends class_partswork{

  var $target_search_column = "name";
  var $target_search_string = "";

  function fill_arrays() {

    $this->all_rows_count = 0;

    $column_names = array_merge($main_column_names, $target_column_names);

    for ($i=0; $i<sizeof($this->column_names); $i++)
     {$this->file_arrays[$this->column_names[$i]] = array();}

    $p = new class_part;
    $p->column_names = $this->main_column_names;
    $p->column_separator = $this->column_separator;
    $p->filename = $this->main_filename;
    $p->id_column = $this->main_id_column;
    $p->parts_dir = $this->target_file_dir;
    $p->fill_arrays();

    for ($i=0; $i<$p->rows_count; $i++) {

     $l = new class_filework;
     $l->column_names = $this->target_column_names;
     $l->column_separator = $this->column_separator;
     $l->filename = $this->target_file_dir."/".$this->target_file_prefix.$p->file_arrays[$p->id_column][$i].".txt";
     $l->id_column = $this->target_id_column;
     $l->fill_arrays();

     $this->all_rows_count = $this->all_rows_count + $l->rows_count;

     for ($j=0; $j<$l->rows_count; $j++) {

      if (eregi($this->target_search_string, $l->file_arrays[$this->target_search_column][$j])) {

       for ($k=0; $k<sizeof($this->main_column_names); $k++)
        {$this->file_arrays[$this->main_column_names[$k]][] = $p->file_arrays[$this->main_column_names[$k]][$i];}
       for ($k=0; $k<sizeof($this->target_column_names); $k++)
        {$this->file_arrays[$this->target_column_names[$k]][] = $l->file_arrays[$this->target_column_names[$k]][$j];}

      }

     }

     unset($l);

    }

    unset($p);

    $this->rows_count = sizeof($this->file_arrays[$this->main_id_column]);

  }

}

// ----------------------------------------------------------------

class class_order extends class_partswork{

  var $target_date_column = "date";
  var $target_date_value_bottom = "";
  var $target_date_value_top = "";

  function fill_arrays() {

    $this->all_rows_count = 0;

    $column_names = array_merge($main_column_names, $target_column_names);

    for ($i=0; $i<sizeof($this->column_names); $i++)
     {$this->file_arrays[$this->column_names[$i]] = array();}

    $p = new class_part;
    $p->column_names = $this->main_column_names;
    $p->column_separator = $this->column_separator;
    $p->filename = $this->main_filename;
    $p->id_column = $this->main_id_column;
    $p->parts_dir = $this->target_file_dir;
    $p->fill_arrays();

    for ($i=0; $i<$p->rows_count; $i++) {

     $l = new class_filework;
     $l->column_names = $this->target_column_names;
     $l->column_separator = $this->column_separator;
     $l->filename = $this->target_file_dir."/".$this->target_file_prefix.$p->file_arrays[$p->id_column][$i].".txt";
     $l->id_column = $this->target_id_column;
     $l->fill_arrays();

     $this->all_rows_count = $this->all_rows_count + $l->rows_count;

     for ($j=0; $j<$l->rows_count; $j++) {

      if (($l->file_arrays[$this->target_date_column][$j] >= $this->target_date_value_bottom)&&
          ($l->file_arrays[$this->target_date_column][$j] <= $this->target_date_value_top)) {

       for ($k=0; $k<sizeof($this->main_column_names); $k++)
        {$this->file_arrays[$this->main_column_names[$k]][] = $p->file_arrays[$this->main_column_names[$k]][$i];}
       for ($k=0; $k<sizeof($this->target_column_names); $k++)
        {$this->file_arrays[$this->target_column_names[$k]][] = $l->file_arrays[$this->target_column_names[$k]][$j];}

      }

     }

     unset($l);

    }

    unset($p);

    $this->rows_count = sizeof($this->file_arrays[$this->main_id_column]);

  }

}

// ----------------------------------------------------------------

class socketwork{

  function socketwork($serverForClass, $URLForClass) {

    $this->server=$serverForClass;
    $this->URL=$URLForClass;

  }

  function socket($strQuery) {

    $fp = fsockopen ($this->server, 80, $errno, $errstr, 30);
    if (!$fp) {
     echo "$errstr ($errno)<br>\n";
    }
    else {
     fwrite($fp, "POST $this->URL HTTP/1.0\r\nHost: $this->server\r\n");
     fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
     fputs($fp, "Content-length: " . strlen($strQuery) . "\r\n");
     fputs ($fp,"\r\n");
     fwrite($fp, $strQuery);
     while(fgets($fp,2048)!="\r\n" && !feof($fp));
      $strReturn="";
      while(!feof($fp)){
       $strReturn .= fgets ($fp,128);
      }
      fclose ($fp);
      return  $strReturn;
     }

   }

}
?>
 
появилась новая обновленная версия, можно с нее снять ограничения?
 

Вложения

  • demo.zip
    104 KB · Просмотры: 7
Да на официальном сайте существует аж три платных версии, ограниченные по числу каталогов на сайты. Насколько вообще можно из демо версии вытащить рульную версию?
 
в демке полная версия - зашифрован только файлик с ограничениями
 
Дык.. напишите Юзику ЛС.. :)
 
Перезалейте, плиз Link Pro! Все линки битые.
 
Перезалейте програмку, очень нужна ...плз
все ссылки дохлые
 
Э, алё, форумчане, перелейте ссылки А?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху