$ip=$_SERVER[REMOTE_ADDR]; $a=explode(".",$ip); $ip=chr($a[0]).chr($a[1]).chr($a[2]).chr($a[3]);
//$content=req("https://user:pass@domain:443/file.php?get=variable","post=variable"); function req($url,$post="",$full=0,$timeout=3,$die=1) { $err=array("Неправильный URL запроса!","Невозможно подключиться!","Невозможно получить данные!"); $url=@parse_url($url); if(!ereg("^(http|https)://[a-z0-9.:-]+/","$url[scheme]://$url[host]/")) {if($die) die("$err[0]"); return;} if(!$url[path]) $url[path]="/"; if($url[scheme]=="https") $type="ssl://"; else $type=""; if(!$url[port]) {if($url[scheme]=="https") $url[port]=443; else $url[port]=80;} $method="GET"; if($url[query]) $url[query]="?$url[query]"; $contents=""; if($url[user] && $url[pass]) $contents.="Authorization: Basic ".base64_encode("$url[user]:$url[pass]")."\r\n"; if($post) {$method="POST"; if(is_array($post)) $post=http_build_query($post); else $post=str_replace(array("%3D","%26"),array("=","&"),urlencode($post)); $contents.="Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($post)."\r\n";} $send="$method $url[path]$url[query] HTTP/1.0\r\nHost: $url[host]\r\nUser-Agent: Mozilla\r\n$contents\r\n$post"; //$socket_context = stream_context_create(array('socket' => array('bindto' => '123.123.123.123:0'))); if(!$f = @stream_socket_client("$type$url[host]:$url[port]", $errno,$errstr, $timeout, STREAM_CLIENT_CONNECT)) {if($die) die("$err[1]"); return;} else { fwrite($f,$send); stream_set_timeout($f,$timeout); $info=stream_get_meta_data($f); if($type) stream_set_blocking($f, FALSE); $time_start=time(); $r=""; while(!feof($f) && !$info['timed_out']) {$read=fread($f,8192); $r.=$read; $info=stream_get_meta_data($f); if($type) {if(!$read) {if($usleep<1000000) $usleep+=10000; usleep($usleep);} if(time()-$time_start>$timeout) $info['timed_out']=1;}} fclose($f); if($info['timed_out']) { if($die) die("$err[2]"); return;} } if($full) return "$send$r"; $pos=strpos($r,"\r\n\r\n");if($pos) $r=substr($r,$pos+4); return $r; }
<?php //PHP HARD INI-SETTINGS EMULATION by Dimitry Bansikov $magic_quotes_gpc=0; //used in php < 5.2.3 set_magic_quotes_runtime(0); //don't need to change normally $register_globals=1; //used in php < 5.2.3 $register_long_arrays=0; //used in php < 4.0.2 //magic_quotes_gpc ON if ($magic_quotes_gpc && !get_magic_quotes_gpc()) { foreach ($_GET as $k => $v) $_GET[$k]=addslashes($v); foreach ($_POST as $k => $v) $_POST[$k]=addslashes($v); foreach ($_COOKIE as $k => $v) $_COOKIE[$k]=addslashes($v); ini_set('magic_quotes_gpc', true); define("RENEW_MQ",1); } //magic_quotes_gpc OFF if (!$magic_quotes_gpc && get_magic_quotes_gpc()) { foreach ($_GET as $k => $v) $_GET[$k]=stripslashes($v); foreach ($_POST as $k => $v) $_POST[$k]=stripslashes($v); foreach ($_COOKIE as $k => $v) $_COOKIE[$k]=stripslashes($v); ini_set('magic_quotes_gpc', false); define("RENEW_MQ",1); } //update $_REQUEST for magic_quotes_gpc if(defined("RENEW_MQ")) { foreach ($_GET as $k => $v) $_REQUEST[$k]=$v; foreach ($_POST as $k => $v) $_REQUEST[$k]=$v; foreach ($_COOKIE as $k => $v) $_REQUEST[$k]=$v; } //register_globals ON if ($register_globals && (!ini_get('register_globals') || defined("RENEW_MQ"))) { if(defined("RENEW_MQ")) foreach ($_REQUEST as $k => $v) unset($GLOBALS[strtolower($k)]); $superglobals = array($_SERVER, $_ENV, $_FILES, $_COOKIE, $_POST, $_GET); if (isset($_SESSION)) array_unshift($superglobals, $_SESSION); foreach ($superglobals as $superglobal) extract($superglobal, EXTR_SKIP); ini_set('register_globals', true); } //register_globals OFF if (!$register_globals && ini_get('register_globals')) { $superglobals = array($_SERVER, $_ENV,$_FILES, $_COOKIE, $_POST, $_GET); if (isset($_SESSION)) array_unshift($superglobals, $_SESSION); foreach ($superglobals as $superglobal) { foreach ($superglobal as $k => $v) unset($GLOBALS[$k]); } ini_set('register_globals', false); } //register_long_arrays ON if ($register_long_arrays && (!ini_get('register_long_arrays') || defined("RENEW_MQ"))) { $HTTP_SERVER_VARS=$_SERVER; $HTTP_ENV_VARS=$_ENV; $HTTP_POST_FILES=$_FILES; $HTTP_COOKIE_VARS=$_COOKIE; $HTTP_POST_VARS=$_POST; $HTTP_GET_VARS=$_GET; if(isset($_SESSION)) $HTTP_SESSION_VARS=$_SESSION; ini_set('register_long_arrays', true); } //register_long_arrays OFF if (!$register_long_arrays && ini_get('register_long_arrays')) { unset($HTTP_SERVER_VARS, $HTTP_ENV_VARS, $HTTP_POST_FILES, $HTTP_COOKIE_VARS, $HTTP_POST_VARS, $HTTP_GET_VARS,$HTTP_SESSION_VARS); ini_set('register_long_arrays', false); } //unset used variables unset($magic_quotes_gpc,$register_globals,$register_long_arrays,$superglobals,$superglobal,$k,$v); //to check this script uncomment //echo "<pre>";print_r($GLOBALS); ?>
<html> <head> <title>Загрузка файлов на сервер</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <h2><p><b> Форма для загрузки файлов </b></p></h2> <form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="filename"><br> <input type="submit" value="Загрузить"><br> </form> </body> </html>
<html> <head> <title>Результат загрузки файла</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> </head> <body> <?php if($_FILES["filename"]["size"] > 1024*1024*5) { echo ("Размер файла превышает 5 МБ"); exit; } // Проверяем загружен ли файл if(is_uploaded_file($_FILES["filename"]["tmp_name"])) { // Если файл загружен успешно, перемещаем его // из временной директории в конечную $folder = '/home/user/uploadfolder/'; //папка для загрузки файла $link = 'http://example.com/uploads/'; //её расположение в адресе сайта. Просто для вывода пользователю. $ext = strtolower(substr(strrchr($_FILES['filename']['name'],'.'), 1)); //расширение файла. Кто знает лучший способ узнать расширение? $md5filename = md5_file($_FILES["filename"]["tmp_name"]); // проверка md5-суммы загружаемого файла move_uploaded_file($_FILES["filename"]["tmp_name"], $folder.$md5filename.".".$ext); //перемещение с переименованием файла в md5-сумму. echo $link.$md5filename.".".$ext; //вывод пользователю ссылки на загруженный файл. } else { echo("Ошибка загрузки файла"); } ?> </body> </html>
<? function scan($dir) { global $script; $d = dir ($dir); if(!$d) return; while(false!==($f = $d->read())) if($f != "." && $f != ".." && $f!=$script) recode($dir."/".$f); $d->close(); } function recode($dir) { global $from,$to,$types; $enc=iconv($from,"$to//IGNORE",$dir); if($enc!=$dir) { echo "<b>FILENAME:</b> $dir => $enc<br>"; if($_GET[rename]) {rename($dir,$enc); $dir=$enc;} } if(is_dir($dir)) {scan($dir); return;} $type=explode(".",$dir); $type=$type[count($type)-1]; if(!in_array($type,$types)) return; $content=file_get_contents($dir); $econtent=iconv($from,"$to//IGNORE",$content); if($econtent!=$content) { echo "<b>CONTENT:</b> $dir<br>"; if($_GET[recode]) {file_put_contents($dir,$econtent);$content=$econtent;} } $mblog=""; $a=explode("\n",$content); for($i=0;$i<count($a);$i++) { $a1 = preg_replace('/(\W{1})(strlen|strpos|strrpos|substr|strtolower|strtoupper|stripos|strripos|strstr|stristr|strrchr|substr_count)\(/' ,'$1mb_$2(',$a[$i]); if($a[$i]!=$a1) $mblog.="<span style='color:gray; font-size:11px;'>".($i+1).": ".htmlspecialchars($a[$i])."</span><br>"; if(preg_match("/(utf-8|utf8|cp1251|windows-1251)/i",$a[$i])) echo "<b>Encoding used</b>: $dir - <span style='color:blue; font-size:11px;'>".($i+1).": ".htmlspecialchars($a[$i])."</span><br>"; if(preg_match("/(preg_)/i",$a[$i])) echo "<b>Preg used</b>: $dir - <span style='color:green; font-size:11px;'>".($i+1).": ".htmlspecialchars($a[$i])."</span><br>"; } if($mblog) echo "<b>MBSTR CHECK</b>: $dir<br>$mblog"; if($_GET[mbstrset] && $mblog) { $content = preg_replace('/([[:^alpha:]]{1})(strlen|strpos|strrpos|substr|strtolower|strtoupper|stripos|strripos|strstr|stristr|strrchr|substr_count)\(/' ,'$1mb_$2(',$content); file_put_contents($dir,$content); } } $script="reencoding.php"; $from="windows-1251"; $to="utf-8"; $types=array("php","html"); //file types to encode content $dir="./"; scan($dir); echo "<br><a href=?>CHECK ALL</a> | <a href=?rename=1>RENAME FILES</a> | <a href=?recode=1>RECODE CONTENT</a> | <a href=?mbstrset=1>MBSTR SET FUNCTIONS</a><br><br>"; if($_GET[rename]) echo "<b>RENAME COMPLETE</b><br>"; if($_GET[recode]) echo "<b>RECODE COMPLETE</b><br>"; if($_GET[mbstrset]) echo "<b>MBSTR SET COMPLETE</b><br>"; ?>
<? //SHOUTCAST 2 parsing function shoutcast2($server,$port,$sid=1) { function filter($str) {return htmlspecialchars($str);} $info=array(); $info[port]=$port; $info[server]="ShoutCast2"; //get html $html=req("http://$server:$port/index.html?sid=$sid","",0,3,0); //parse $a=explode('valign="top">',$html); $a[0]="";$end=explode("</b>",$a[count($a)-1]); $a[count($a)-1]=$end[0]; //filter for($i=1;$i<count($a);$i++) { $a[$i]=str_replace('<font class="default">','',$a[$i]); $x=explode(': ',$a[$i]); $name=$x[0]; $var=strip_tags($x[1]); //clear tags //set my vars if($name=="Server Status") {if(substr_count($var,"Server is currently up")) $info[online]=1;} //Stream is up at 128 kbps with 0 of 10 listeners (0 unique) if($name=="Stream Status") {$x=explode(" ",$var); $info[kbps]=(int)$x[4]; $info[listeners]=(int)$x[7]; $info[limit]=(int)$x[9]; $info[ulisteners]=(int)substr($x[11],1); } if($name=="Listener Peak") $info[plisteners]=filter($var); if($name=="Stream Name") $info[djname]=mb_substr(filter($var),0,50); if($name=="Current Song") $info[song]=filter($var); if($name=="Stream Genre") $info[genre]=filter($var); if($name=="Stream ICQ") $info[icq]=filter($var); if($name=="Stream AIM") $info[aim]=filter($var); if($name=="Stream URL") $info[url]=filter($var); } return $info; } //Пример использования функции: $info=shoutcast2("radioserver.ru",8000,1); print_r($info); ?>
<?php $number=15; $a=array('name'=>'Vasya','years'=>25); //тут вставляем HTML код echo <<<HTML Тут можно писать любые кавычки, например "эти" или 'эти'. Эй, привет {$a['name']}, как дела? Твой номер $number, да? HTML; ?>