Вот держи
<?php /* * SAPE.ru -- Интеллектуальная система купли-продажи ссылок * PHP-клиент, версия 0.3 от 01.02.2007 * По всем вопросам обращайтесь на support@sape.ru * ИСПОЛЬЗОВАНИЕ: * <?php define('_SAPE_USER', 'lkjef889309efkoksf93sdas434oakf'); require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php'); $o['verbose'] = true; $o['charset'] = 'koi8-r'; $o['host'] = 'site.ru'; $o['request_uri'] = '/page.html'; $o['multi_site'] = true; $sape = new SAPE_client($o); unset($o); echo $sape->return_links(); ?> * */ class SAPE_client { var $_version = '0.3'; var $_verbose = false; var $_charset = ''; var $_server = 'www.sape.ru'; var $_cache_lifetime = 3600; var $_cache_reloadtime = 600; $_links_db_file = ''; var $_links = array(); var $_links_page = array(); var $_links_delimiter = ''; var $_error = ''; var $_host = ''; var $_request_uri = ''; var $_multi_site = false; var $_fetch_remote_type = ''; [file_get_contents|curl|socket] var $_socket_timeout = 30; function SAPE_client($options = null) {if (is_array($options)) { if (isset($options['host'])) { $host = $options['host']; } } elseif (strlen($options)) { $host = $options; $options = array(); } else { $options = array(); } if (strlen($host)) { $this->_host = $host; } else { $this->_host = $_SERVER['HTTP_HOST']; } $this->_host = preg_replace('/^http:\/\//', '', $this->_host); $this->_host = preg_replace('/^www./', '', $this->_host); if (isset($options['request_uri']) && strlen($options['request_uri'])) { $this->_request_uri = $options['request_uri']; } else { if (strlen($_SERVER['REDIRECT_URL'])) { $this->_request_uri = $_SERVER['REDIRECT_URL']; } else { $this->_request_uri = $_SERVER['REQUEST_URI']; } } if (isset($options['multi_site']) && $options['multi_site'] == true) { $this->_multi_site = true; } if (isset($options['verbose']) && $options['verbose'] == true) { $this->_verbose = true; } if (isset($options['charset']) && strlen($options['charset'])) { $this->_charset = $options['charset']; } if (isset($options['fetch_remote_type']) && strlen($options['fetch_remote_type'])) { $this->_fetch_remote_type = $options['fetch_remote_type']; } if (isset($options['socket_timeout']) && is_numeric($options['socket_timeout']) && $options['socket_timeout'] > 0) { $this->_socket_timeout = $options['socket_timeout']; } if (!defined('_SAPE_USER')) { $this->raise_error('Не задана константа _SAPE_USER'); return false; } $this->load_links(); } function load_links() { if ($this->_multi_site) { $this->_links_db_file = dirname(__FILE__) . '/' . $this->_host . '.links.db'; } else { $this->_links_db_file = dirname(__FILE__) . '/links.db'; } if (!is_file($this->_links_db_file)) { if (@touch($this->_links_db_file)) { @chmod($this->_links_db_file, 0666); } else { $this->raise_error('Нет файла ' . $this->_links_db_file . '. Создать не удалось. Выставите права 777 на папку.'); return false; } } if (!is_writable($this->_links_db_file)) { $this->raise_error('Нет доступа на запись к файлу: ' . $this->_links_db_file . '! Выставите права 777 на папку.'); return false; } @clearstatcache(); if (filemtime($this->_links_db_file) < (time()-$this->_cache_lifetime) || filesize($this->_links_db_file) == 0) { @touch($this->_links_db_file, (time() - $this->_cache_lifetime + $this->_cache_reloadtime)); $path = '/code.php?user=' . _SAPE_USER . '&host=' . $this->_host; if (strlen($this->_charset)) { $path .= '&charset=' . $this->_charset; } if ($links = $this->fetch_remote_file($this->_server, $path)) { if (substr($links, 0, 12) == 'FATAL ERROR:') { $this->raise_error($links); } else { if (@unserialize($links) != false) { $this->_write($this->_links_db_file, $links); } } } } if ($links = $this->_read($this->_links_db_file)) { if (!$this->_links = @unserialize($links)) { $this->_links = array(); } } else { $this->_links = array(); } if (strlen(session_id())) { $session = session_name() . '=' . session_id(); $this->_request_uri = str_replace(array('?'.$session,'&'.$session), '', $this->_request_uri); } if (isset($this->_links['__sape_delimiter__'])) { $this->_links_delimiter = $this->_links['__sape_delimiter__']; } if (array_key_exists($this->_request_uri, $this->_links) && is_array($this->_links[$this->_request_uri])) { $this->_links_page = $this->_links[$this->_request_uri]; } else { if (isset($this->_links['__sape_new_url__']) && strlen($this->_links['__sape_new_url__'])) { $this->_links_page = $this->_links['__sape_new_url__']; } } } function return_links($n = null) { if (is_array($this->_links_page)) { $total_page_links = count($this->_links_page); if (!is_numeric($n) || $n > $total_page_links) { $n = $total_page_links; } $links = array(); for ($i = 1; $i <= $n; $i++) { $links[] = array_shift($this->_links_page); } $html = join($this->_links_delimiter, $links); return $html; } else { return $this->_links_page; } } function fetch_remote_file($host, $path) { $user_agent = 'SAPE_Client PHP ' . $this->_version; @ini_set('allow_url_fopen', 1); @ini_set('default_socket_timeout', $this->_socket_timeout); @ini_set('user_agent', $user_agent); if ( $this->_fetch_remote_type == 'file_get_contents' || ( $this->_fetch_remote_type == '' && function_exists('file_get_contents') && ini_get('allow_url_fopen') == 1 ) ) { if ($data = @file_get_contents('http://' . $host . $path)) { return $data; } } elseif ( $this->_fetch_remote_type == 'curl' || ( $this->_fetch_remote_type == '' && function_exists('curl_init') ) ) { if ($ch = @curl_init()) { @curl_setopt($ch, CURLOPT_URL, 'http://' . $host . $path); @curl_setopt($ch, CURLOPT_HEADER, false); @curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); @curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $this->_socket_timeout); @curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); if ($data = @curl_exec($ch)) { return $data; } @curl_close($ch); } } else { $buff = ''; $fp = @fsockopen($this->_server, 80, $errno, $errstr, $this->_socket_timeout); if ($fp) { @fputs($fp, "GET {$path} HTTP/1.0\r\nHost: {$host}\r\n"); @fputs($fp, "User-Agent: {$user_agent}\r\n\r\n"); while (!@feof($fp)) { $buff .= @fgets($fp, 128); } @fclose($fp); $page = explode("\r\n\r\n", $buff); return $page[1]; } } return $this->raise_error('Не могу подключиться к серверу: ' . $host . $path); } function _read($filename) { $fp = @fopen($filename, 'rb'); @flock($fp, LOCK_SH); if ($fp) { clearstatcache(); $length = @filesize($filename); $mqr = get_magic_quotes_runtime(); set_magic_quotes_runtime(0); if ($length) { $data = @fread($fp, $length); } else { $data = ''; } set_magic_quotes_runtime($mqr); @flock($fp, LOCK_UN); @fclose($fp); return $data; } return $this->raise_error('Не могу считать данные из файла: ' . $filename); } function _write($filename, $data) { $fp = @fopen($filename, 'wb'); if ($fp) { @flock($fp, LOCK_EX); $length = strlen($data); @fwrite($fp, $data, $length); @flock($fp, LOCK_UN); @fclose($fp); return true; } return $this->raise_error('Не могу записать данные в файл: ' . $filename); } function raise_error($e) { $this->_error = '<p style="color: red; font-weight: bold;">SAPE ERROR: ' . $e . '</p>'; if ($this->_verbose == true) { print $this->_error; } return false; } } ?>
Defender, а можно адрес домена в студию, уж больно интересно посмотреть на название ради которого вы готовы терпеть судебные передряги. :)
Тьфу блин, тошно читать этих журналюг, как пишут а, ЗАХВАТИЛ, прям террорист какойто с их слов получается. А то что он купил его на законных основаниях, проявив смекалку и дальновидность, журналюги не пишут.
Кидайте прямо сюда, мне тоже очень интересно взглянуть на шифр.
Отсудить скорее всего не получится. На моей памяти это получилось только у одной конторы с гиганским количеством бабла и профильной направленностью деятельности в инете. Я думаю все знают что это за контора, естесно гугл.
Ну а если всеж Российское законодательство в будущем будет позволять подгребать под ТМ доменные имена, прогнозирую новый вид бизнеса, находим действующий раскрученный мегапосещаемый сайт, регистрируем на себя ТМ совпадающую с названием этого сайта (если конечно ТМ не зарегистрирована на хозяина сайта), и вуаля он ваш :)
Для Яши это очень критично, бывали случаи. Если список поисковых фраз был большим, он вполне мог расценить это как поисковый спам и тематика этих слов ему неважна. Можно без проблем держать список фраз хоть в тыщу штук, токма заключенных в тэг NOINDEX, тогда не будет никаких санкций со стороны яши.
Nptns, "1. История запросов" в NOINDEX была или нет?
Приобрёл базу у топикстартера. Конечно пришлось немного почистить, но эта проблема со всеми продаваемыми базами, по крайней мере видно и очевидно что человек следит за актуальностью, инет это постоянное движение, так что каталоги рождаются и умирают, обзаводятся капчами или перестают быть белыми :) В общем покупкой остался доволен, с нетерпением ждёмс апдейта. Да, ещё, топикстартер вежливый, общаться приятно.
Бери AllSubmitter, + 2-3 базы от уважаемых людей этого форума. Объединяешь эти 3 бызы в одну, удаляешь мусор, ну а второй раз как по маслу. Авторегистрация + волшебный режим SMART делают чудеса. :) Но будь готов к тому, что первый прогон прийдется помучится, прогу нужно обучить корректно регить. Если решишь на аллсубмиттере остановится, могу помоч купить его со скидкой, стучи в личку.
В каком смысле?