Для проверки свободен ли домен
$domain_name = 'test.ru'; $sock = fsockopen ("whois.ripe.net", 43, $errno, $errstr); if (!$sock) { print "Ошибка.\r\n"; } else { fputs ($sock, $domain_name."\r\n"); while (!feof($sock)) { if (strstr(fgets($sock, 128), 'No entries found for the selected source')) { print "Домен " . $domain_name . " свободен.\r\n"; flush(); break; } } } fclose ($sock);
Если хотите, оформите в виде функции. Думаю тут проблем не возникнет.
Определение google PR
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){ case 11: $c+=($url[$k+10]<<24); case 10: $c+=($url[$k+9]<<16); case 9 : $c+=($url[$k+8]<<8); case 8 : $b+=($url[$k+7]<<24); case 7 : $b+=($url[$k+6]<<16); case 6 : $b+=($url[$k+5]<<8); case 5 : $b+=($url[$k+4]); case 4 : $a+=($url[$k+3]<<24); case 3 : $a+=($url[$k+2]<<16); case 2 : $a+=($url[$k+1]<<8); case 1 : $a+=($url[$k+0]); } $mix = mix($a,$b,$c); return $mix[2]; } function strord($string) { for ($i = 0; $i < strlen($string); $i++) { $result[$i] = ord($string{$i}); } return $result; } function get_google_pr($url, $proxy = '') { $url = 'info:http://' . $url; $checksum = GoogleCH(strord($url)); $google_url = sprintf('/search?client=navclient-auto&ch=6%u&features=Rank&q=' . $url, $checksum); $host = 'www.google.com'; $result = ''; if ($proxy == '') { $fp = @fsockopen($host, 80, $errno, $errstr, 20); if ($fp) { $out = ''; $out .= "GET $google_url HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-icq, application/x-shockwave-flash, */*\r\n"; $out .= "Accept-Language: ru\r\n"; $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) $result .= fgets($fp, 1024); fclose($fp); } } else { preg_match('/^(?:http\:\/\/)?(.+)\:(\d{0,5})$/is', $proxy, $arr); $ip = $arr[1]; $port = $arr[2]; $fp = @fsockopen($ip, $port, $errno, $errstr, 20); if ($fp) { $out = ''; $out .= "GET http://$host$google_url HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-icq, application/x-shockwave-flash, */*\r\n"; $out .= "Accept-Language: ru\r\n"; $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) $result .= fgets($fp, 1024); fclose($fp); } } if ($result != '') { if (preg_match('/Rank_\d+\:\d+\:(\d+)/is', $result, $arr)) return intval($arr[1]); else return '-'; } else return '-'; } function google_pr($url, $proxy = '') { if (!is_array($url)) $url = array($url); $pr_arr = array(); foreach ($url as $key => $val) { if (preg_match('/^http\:\/\//is', $val)) $val = substr($val, 7); $url_www = $val; if (preg_match('/^www\./is', $val)) $val = str_replace('www.', '', $val); else $url_www = 'www.' . $val; $pr = get_google_pr($val, $proxy); $pr_www = get_google_pr($url_www, $proxy); if ($pr_www > $pr) $pr_arr[] = $pr_www; else $pr_arr[] = $pr; } rsort($pr_arr, SORT_NUMERIC); return $pr_arr[0]; }
get_google_pr($url, $proxy = '') - возвращает PR для домена в том виде, в котором он указан (без учёта www). $url здесь без http:// надо передавать
google_pr($url, $proxy = '') - опледеляет PR для домен с www и без www и возвращает наибольший. так же можно передать массив урлов, тогда PR определится для каждоко урла из масива (для каждого с www и без www) и вернётся наибольший. Здесь урлы можно и с http:// и без него передавать
прокси задаётся в формате ip:port. Если прокся задана, то обращения к гуглю будут через прокси идти
все ф-и здесь, кроме последней, работают в связке.
Определение яндекс тИЦ
function get_yandex_tic($url, $proxy = '') { if ($url{strlen($url) - 1} == '/' || $url{strlen($url) - 1} == '\\') $url = substr($url, 0, -1); if (preg_match('/^www\./is', $url)) $url2 = $url . ',' . substr($url, 4); else $url2 = 'www.' . $url . ',' . $url; $yandex_url = '/yca/cy/ch/' . $url . '/'; $host = 'search.yaca.yandex.ru'; $result = ''; if ($proxy == '') { $fp = @fsockopen($host, 80, $errno, $errstr, 20); if ($fp) { $out = ''; $out .= "GET $yandex_url HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-icq, application/x-shockwave-flash, */*\r\n"; $out .= "Accept-Language: ru\r\n"; $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) $result .= fgets($fp, 1024); fclose($fp); } } else { preg_match('/^(?:http\:\/\/)?(.+)\:(\d{0,5})$/is', $proxy, $arr); $ip = $arr[1]; $port = $arr[2]; $fp = @fsockopen($ip, $port, $errno, $errstr, 20); if ($fp) { $out = ''; $out .= "GET http://$host$yandex_url HTTP/1.1\r\n"; $out .= "Host: $host\r\n"; $out .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-icq, application/x-shockwave-flash, */*\r\n"; $out .= "Accept-Language: ru\r\n"; $out .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) $result .= fgets($fp, 1024); fclose($fp); } } if (preg_match('/индекс цитирования (?:www\.)?(.+?)\s\<\/TITLE\>/is', $result, $arr)) $url2 = 'www.' . $arr[1] . ',' . $arr[1]; //фильтруем спец. символы preg_* $url2 = preg_replace('/([^\w\d]|_)/is', '\\\\\\1', $url2); if (preg_match("/$url2\&.+?\>(\d+)\<\/a\>/is", $result, $arr)) return intval(@$arr[1]); else if (preg_match('/Индекс цитирования \(тИЦ\) ресурса..?меньше 10/is', $result)) return 0; else return '-'; } function yandex_tic($url, $proxy = '') { if (!is_array($url)) $url = array($url); $tic_arr = array(); foreach ($url as $key => $val) { if (preg_match('/^http\:\/\//is', $val)) $val = substr($val, 7); $url_www = $val; if (preg_match('/^www\./is', $val)) $val = str_replace('www.', '', $val); else $url_www = 'www.' . $val; $tic = get_yandex_tic($val, $proxy); $tic_www = get_yandex_tic($url_www, $proxy); if ($tic_www > $tic) $tic_arr[] = $tic_www; else $tic_arr[] = $tic; } rsort($tic_arr, SORT_NUMERIC); return $tic_arr[0]; }
get_yandex_tic($url, $proxy = '') - возвращает тИЦ для домена в том виде, в котором он указан (без учёта www). $url здесь без http:// надо передавать
yandex_tic($url, $proxy = '') - опледеляет тИЦ для домен с www и без www и возвращает наибольший. так же можно передать массив урлов, тогда тИЦ определится для каждоко урла из масива (для каждого с www и без www) и вернётся наибольший. Здесь урлы можно и с http:// и без него передавать
прокси задаётся в формате ip:port. Если прокся задана, то обращения к яндексу будут через прокси идти
тИЦ определяется правильно даже если сайт есть в каталоге и если в каталоге зарегистрировано его зеркало
Здесь вторая ф-я использует в своей работе первую.
Не всё. Про PR забыли. )
Вот тут ещё пару слов о такой вставке сказано:
http://www.vbulletin.com.ru/forum/showpost.php?p=12359&postcount=6
Вот ещё, в версии 3.5.x эти phpinclude заменены на нечто другое:
http://vbulletin.net.ru/forum/showthread.php?p=23442#post23442
Для вставке php кода в шаблон копайте в сторону шаблонов phpinclude_* в vBulletin. Я в этом форуме не копался ниразу, поэтому про эти шаблоны ничего не знаю. Я про них вот здесь прочитал:
http://www.vbulletin.com.ru/forum/showthread.php?t=548
http://www.netadmin.ws/forum/showthread.php?s=&postid=69316
Понимаю. Хотел сделать этот раздел для пользователей, как небольшое дополнение к общему развитию сайта. Что бы у посетителя был лишний повод зайти на сайт или порекомендовать кому-либо этот раздел.
А по-подробнее можно? Что требуется: поддержка (что именно: добавлять новые товары или так же работать с сайтом в целом), продвижени в поисковиках или что ещё? Удалённая работа или нет? Какая занятость? Какая зарплата? Наконец, адрес сайта, если не секрет.
Не соглашусь. Если с этого WM идентификатора кто-то кого-то кинул, то наверника оставят для него претензию в арбитраж и это будет видно при оплате, либо вообще заблокируют, если претензия от аттестованного участника будет и обоснованная. Конечно есть риск, что как раз ты и будешь первым, кото кинут с этого WM ID :) Но всё же...
Замечательно :)
Я писал админу провайдера utl.ru, через который по видимому и лазил кидала (IP адрес, с которого он к серверу WM подконнекчивался, арбитраж WebMoney предоставил), и он сказал, что инфу о пользователе предоставит, если будет официальный запрос. Так что, если Вы УВД подключили, то думаю с этим проблем не будет :)