Posts Tagged ‘php’

PHP天气预报小偷代码

<?php

*************************************************************************/

@header(“Content-Type:text/html;charset=gb2312”);

 error_reporting(0);

/*******************看weather.txt的修改时间是否为当天,如果是昨天的就要上网抓结果***********/

     $tmp = filemtime(“weather.txt”);

    $tt1=date(“Ymd”,$tmp).”<br>”;

    $tt2=date(“Ymd”);

    if ($tt1<$tt2) {

    //echo “要抓结果”;

    unlink(“weather.txt”);

    $url = “http://php.weather.sina.com.cn/search.php?city=广州” ;

    $content = file_get_contents($url);

    preg_match_all(‘/<div>(.+?)</DIV>/si’,$content,$result);

    for($i=0;$i<2;$i++){

        $x= strip_tags($result[1][$i]).”n”;

        $handle = fopen (“weather.txt”, “a”);

            fwrite($handle, $x);

         fclose($handle);

      }

      listweather();

    } else {

        // echo “直接从weather.txt读结果”;   

        listweather();

    }

    //天气显示函数

    function listweather() {

    $filename=”weather.txt”;

    $handle=fopen($filename,”r”);

    if ($handle) {   

        $contents=fread($handle,filesize($filename));

        fclose($handle);

        $cc=explode(“n”,$contents);

        $today=explode(” “,$cc[0]);

        $tomo=explode(” “,$cc[1]);

?>

<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>

<table width=”200″ height=”85″  cellspacing=”0″ bordercolordark=”#FFFFFF” bordercolorlight=”#000000″ border=”1″ align=”center” cellpadding=”2″>

  <tr bgcolor=”#6b8ba8″ style=”color:FFFFFF”>

    <td height=”22″ colspan=”3″>

      <div align=”center”>未来48小时天气预报</div></td>

  </tr>

  <!–<tr bgcolor=”#0066FF”> –>

  <tr >

    <td width=”54″ height=”21″>

      <div align=”center”><font style=”font-size=14px” color=”#000000″>时间</font></div></td>

    <td width=”88″>

      <div align=”center”><font style=”font-size=14px” color=”#000000″>天气情况</font></div></td>

    <td width=”90″>

      <div align=”center”><font  style=”font-size=14px” color=”#000000″>温度℃</font></div></td>

  </tr>

  <tr >

    <td height=”19″ >

      <div align=”center”> <font style=”font-size=14px”>今天</font></div></td>

    <td>     

      <div align=”center”><font style=”font-size=14px”><?php echo $today[0]?></font></div></td>

    <td>    

      <div align=”center”><font style=”font-size=14px”><?php echo ereg_replace(“℃”,””,$today[1])?>℃</font></div></td>

  </tr>

  <tr>

    <td height=”18″>

      <div align=”center”><font style=”font-size=14px”>明天</font></div></td>

    <td>

      <div align=”center”><font style=”font-size=14px”><?php echo $tomo[0]?></font></div></td>

    <td>     

      <div align=”center”><font style=”font-size=14px”><?php echo ereg_replace(“℃”,””,$tomo[1])?>℃</font></div></td>

  </tr>

</table>

<?php

        } else {

            echo “无法读取天气记录!!n”;

        }

    } 

?>

天气预报小偷PHP代码

<?php
/***
天气预报
***/
function readAll($location)
{
 $MAX_RETRY_NUM = 3;
 (preg_match(“/(http://)?([^/|:]+)(:d{1,5})?(/.+)?/”, $location, $url))
 {
  list(,,$host,$port,$path) = $url;
  $port = preg_replace(“/:/”, “”, $port);
  $port = strlen($port) ? $port : 80;
  $path = strlen($path) ? $path : “/”;
  $request  = “GET $path HTTP/1.0rn”;
  $request .= “Host: $hostrn”;
  $request .= “Accept: */*rn”;
  $request .= “Connection: closern”;
  $request .= “User-Agent: superspice’s BOTrnrn”;
  $retry = 0;
  $do = false;
  do
  {
    (!$socket =fsockopen($host, $port, &$errMsg, &$errCode ))
   {
    return false;
   }
   fwrite($socket, $request);
   $flag = true;
   $header = “”;
   $body = “”;
   while(!feof($socket))
   {
    $line = fgets($socket, 128);
    ($flag)
    {
    (trim(chop($line)) == “”)
     {
      $flag = false;
     }
      
     {
      $header .= $line;
     }
    }
    
    {
     $body .= $line;
    }
   }
   (preg_match(“/Content-Length: (d+)/”, $header, $out))
   {
    $header_length = $out[1];
    ($header_length != strlen($body))
    {
     $do = true;
    }
        {
     $do = false;
    }
   }
   (is_resource($socket))
   {
    fclose($socket);
   }
   $retry ++;
  }while($do && $retry<$MAX_RETRY_NUM);
 }
 return $body;
}
function get_weather()
{
 $TqUrl=”http://www.ttqx.com.cn/forecast/area_weather.asp?city_name=合肥&zhou=yz”;
 $VaX1Tem=readAll($TqUrl);
 (!$VaX1Tem)
 {
  return false;
 }
 type($ArrayTq,”array”);
 $ArrayTq=explode(“<!–天气预报开始–>”,$VaX1Tem);
 $ArrayTq=explode(“<!–天气预报结束–>”,$ArrayTq[1]);
 $flash = explode(“<object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″”,$ArrayTq[0]);
 $flash = “<object classid=”clsid:D27CDB6E-AE6D-11cf-96B8-444553540000″”.$flash[1];
 $flash = explode(“</EMBED></object>”,$flash);
 $flash = $flash[0].”</EMBED></object>”;
 $pattern = array(“/images/weather/i”,”/WIDTH=”65″ HEIGHT=”70″/i”);
 $replace = array(“http://www.ttqx.com.cn/forecast/images/weather”,”WIDTH=”51″ HEIGHT=”55″”);
 $flash = preg_replace($pattern,$replace,$flash);
 //天气
 $ArrayTqTem2=explode(‘<tr><td>’,$ArrayTq[0]);
 $ArrayTqTem2=explode(‘</td></tr>’,$ArrayTqTem2[1]);
 //$ArrayTqTem2=explode(‘<td>’,$ArrayTqTem2[0]);
 $ArrayTqTem2=$ArrayTqTem2[0];
 //风力
 $ArrayTqTem3=explode(‘<tr><td>’,$ArrayTq[0]);
 $ArrayTqTem3=explode(‘</td></tr>’,$ArrayTqTem3[2]);
 //$ArrayTqTem3=explode(‘<td>’,$ArrayTqTem3[0]);
 $ArrayTqTem3=$ArrayTqTem3[0];
 //温度
 $ArrayTqTem4=explode(‘<tr><td>’,$ArrayTq[0]);
 $ArrayTqTem4=explode(‘</td></tr>’,$ArrayTqTem4[3]);
 //$ArrayTqTem4=explode(‘<td>’,$ArrayTqTem4[0]);
 $ArrayTqTem4=$ArrayTqTem4[0];
( !$ArrayTqTem2 or !$ArrayTqTem3 or !$ArrayTqTem4)
 {
  return false;
 }
 //$TqVar=$ArrayTqTem2.”,”.$ArrayTqTem3.”<br>气温:”.$ArrayTqTem4;
 $weather[0]=$flash;
 $weather[1]=$ArrayTqTem2;
 $weather[2]=$ArrayTqTem3;
 $weather[3]=$ArrayTqTem4;
 return $weather;
}
$weather = get_weather();
?>

上面写的是php文件,你没有echo当然不能正常显示啦

<?php
error_reporting(0);
include_once (“../include/weather.php”);
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<title>天气预报</title>
<style>
html,body {margin:0;padding:0; font-size:12px;}
div {width:178px; height:58px;position:relativ;position:relative}
img {width:178px; height:58px; z-index:1;position:absolute; border:0}
object { margin-top:2px; margin-left:8px;}
span{position:absolute;top:2px;right:12px;}
li{font-family:Verdana,宋体;list-style:none;margin-top:3px; letter-spacing:1px;}
</style>
</head>
<body>
<div>
<a href=”http://www.ttqx.com.cn/tqyb/” target=”_blank”><img src=”http://www.80y.com.cn/wp-content/uploads/auto_save_image/2011/01/0502051Co.gif” /></a><?php echo $weather[0]; ?><span><li><?php echo $weather[1]; ?></li> <li><?php echo $weather[2]; ?></li> <li><?php echo $weather[3]; ?></li></span>
</div>
</body>
</html>

PHP获取随机字符的函数

<?php
//获取随机字符 此函数区分字符大小写 如果不区分大小写可加入函数strtolower
function genRandomString($len)
{
    $chars = array(
        "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",  
        "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",  
        "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",  
        "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",  
        "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",  
        "3", "4", "5", "6", "7", "8", "9"
    );
    $charsLen = count($chars) – 1;
    shuffle($chars);// 将数组打乱
    $output = "";
    for ($i=0; $i<$len; $i++)
    {
        $output .= $chars[mt_rand(0, $charsLen)]; //获得一个数组元素
    }  
    return $output;
}
$str = genRandomString(4);
echo $str;
?>
 

IIS6+PHP5+MySQL5安装

一:软件准备:

1. PHP(PHP-5.2.11)

http://cn2.php.net/get/php-5.2.11-Win32.zip/from/a/mirror

php-5.2.11-Win32.zip

 

2. MySQL(5.4.2)

http://dev.mysql.com/downloads

mysql-essential-5.4.2-beta-win32.msi

 

3. PHPMyAdmin

phpMyAdmin-3.2.0.1-all-languages.zip

 

 

二:软件安装设置:

 

1. PHP安装:

php-5.2.11-Win32.zip解开压缩之后,放置到C:\public\php-5.2.11-Win32中。

1.1 DLL文件copy:

将C:\public\php-5.2.11-Win32目录下的所有dll文件copy到c:\Windows\system32下.

 

1.2 可执行文件和ini文件的copy:

将C:\public\php-5.2.11-Win32目录下的php.exe、php-win.exe和php.ini-dist三个文件拷到C:\Windows ( Windows 2000 下为 C:\WINNT)下;将C:\Windows\php.ini-dist改名为php.ini.

1.3. 修改PHP ini文件:

使用UltraEdit打开C:\Windows\php.ini

 
register_globals = Off
 

,将 Off 改成 On ;
 
extension_dir =
 

,并将其路径指到你的 PHP 目录下的 extensions 目录,比如:extension_dir = "C:\public\php-5.2.11-Win32\ext" ;
搜索找到
 
;Windows Extensions
 

将下面列举的

 
;extension=php_dbase.dll
 

可选

 
;extension=php_gd2.dll
 

这个是用来支持GD库的,一般需要,必选

  
;extension=php_ldap.dll
 

可选

 
;extension=php_mbstring.dll
 

这不选一般用PHPMYADMIN会出红色提示,故必选

   
;extension=php_mssql.dll
 

这个是用来支持MSSQL的,可选

   
;extension=php_mysql.dll
 

这个是用来支持MYSQL的,要支持MYSQL必选
将这些前的";"去掉,其他的你需要的也可以去掉前面的;然后关闭保存该文件。
 
 
2. IIS配置:
IIS安装很简单,但要让它支持PHP,则需要做进一步配置。
 
PHP 支持 CGI 和 ISAPI 两种安装模式,推荐使用 ISAPI 模式。这里只解介绍 ISAPI 模式安装方法:
 

 

2.1: 添加ISAPI筛选器:

在“控制面板->性能和维护->管理工具->Internet 信息服务"中选择"默认网站"。停止之。

反键点选"默认网站"->属性->ISAPI筛选器,添加筛选器。

筛选器名称:":PHP"

可执行文件:"C:\public\php-5.2.11-Win32\php5isapi.dll"

Sam: 这里是给IIS指出:遇到PHP,使用php指定的筛选器.

 

2.2: 添加应用程序映射:

反键点选"默认网站"->属性->主目录->配置,添加应用程序映射。

.php和C:\public\php-5.2.11-Win32\php5isapi.dll。

Sam:这里给IIS指出:遇到.php文件,使用何种程序解析之。

 

2.3: 添加文档index.php

反键点选"默认网站"->属性->文档

添加一个index.php.

可以将 index.php 升到最高优先级,这样,访问站点时就会首先自动寻找并打开 index.php 文档.

 

2.4. 重新启动IIS:

net stop w3svc
net stop iisadmin
net start w3svc

 

2.5.写index.php.

首先在反键点选"默认网站"->属性->主目录下看本地路径,通常为:C:\Inetpub\wwwroot

则在这个目录中建立:一个index.php,内容如下:

<?php
phpinfo();
?>

 

此时,IIS已经支持PHP。

使用浏览器:http://localhost

 

PHP has encountered an Access Violation[转]

改PHP.INI

1.将;upload_tmp_dir该行的注释符,即前面的分号“;”去掉,使该行在php.ini文档中起作用。upload_tmp_dir是用来定义上传文件存放的临时路径,在这里你还可以给其定义一个绝对路径,例如:upload_tmp_dir = d:upload  当然,此时你的d:upload目录必须有读写权限。

2.出现这样的错误语句一般是因为你的php.ini中关于session.save_path一项没有设置好,解决的方法是将session.save_path和session.cookie_path 设置置为
  session_save_path = c:\temp
  session.cookie_path = c:\temp
  然后在c:\目录下建立一个temp目录,

 
下面是其他的处理方法
 
第一种可能:

 

去掉 php中 eaccelerator 的扩展
这样做能够解决您的问题,不过可能会加重系统负担
因为eaccelerator主要是为了节省系统资源的东西

 

具体做法是找到php.ini
如果是我帮您配置的,一般在c:/php/php.ini或者 c:/winnt/php.ini 或者c:/windows/php.ini

 

去掉

 

zend_extension_ts="C:\php\extensions\eaccelerator_win_xxx.dll"
eaccelerator.shm_size="16"
eaccelerator.cache_dir="c:\temp"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.debug="0"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9" 字串8

ea主要是在unix环境下开发的,但是作者忽略到windows实际上不像u主机那样,是没有u主机的那种内存共享机制的
这个bug已经提交给他们了,希望0.9.5能够解决 字串7

当然,如果您的机器这个问题不严重,建议还是保留,ea是一块非常优秀的Php缓存+加速软件
配合zo使用,将会降低系统负担 50%-80%左右,提高负载能力、速度和效率 200%左右 字串2

  字串2

第二种可能 字串2

session_save_path 需要设定一个实际的物理路径,并且该目录需要everyone的所有权限,类似U主机的0777

  字串6

第三种可能
c:/winnt/temp 或者 c:/windows/temp
也需要everyone的所有权限,类似U主机的0777

第四种可能
您的内存严重不足,查看一下,如果有问题,请加内存,最好是一次加两条
比如加1G内存,最好是加2条一模一样的512M。否则没有启用双通道,效果也很一般

  字串2

第五种可能
ZendOptimizer和php的搭配不是很好
换个版本试试看
目前比较稳定的搭配是
php4.3.11+zo 2.5.10a
或者php4.4.1+zo 3.0 beta2 字串7

 

第六种可能

这种多属于用win2003的用户
他们在应用池中设定了限制
比如多长时间回收,最大使用内存多少等等
这些设置势必造成这个经典的php错误
木头经过数以百计的测试,敢担保问题会出现在这里。 字串

str_replace函数使用

函数原型:mixed str_replace(mixed needle,mixed new_needle,mixed haystack[,int &count]);
      needle:要被替换的字符串,new_needle:替换用的字符串,haystack:操作字符串,count:替换次数【可选参数】
     我们重点试验前三个在使用数组是的执行方式:
    
      在都不使用数组时,该函数直接使用new_needle替换所有的needle并返回替换后的字符串。如:str_replace("m","n","my name is jim!")返回ny nane is jin!

     1、只对needle使用数组。
     示例:str_replace(array(‘m’,’i’),’n’,"my name is jim!");返回:ny nane ns jnn!
     可以看出,函数顺序性的对数组中每个字符串进行替换,并返回替换后的字符串。
      2、只对new_needle使用数组。
     示例:str_replace(‘m’,array(‘n’,’z’),"my name is jim!\n")返回:Arrayy naArraye is jiArray!
      该替换比较有意思,如果只对第二个参数使用数组则函数将其作为字符串Array进行使用,将所有的needle替换为了数组。
     3、只对haystack使用数组。
     示例:str_replace("m","n",array("my name is jim!","the game is over!"))该语句执行结果返回一个数组,即分别为传入的两个字符串替换后的结果。
     如果输出数组内容会看到:ny nane is jin! the gane is over!

     4、对needle和new_needle都使用数组。
     示例:str_replace(array("m","i"),array("n","z"),"my name is jim!")返回:ny nane zs jzn!
      查看执行结果可以发现,如果前两个参数都使用数组则函数把数组各个对象项字符串进行了替换,及needle的第一项替换为new_needle的第一项。以此类推。
      如 果needle数组比new_deedle长,例 如:str_replace(array("m","i","s"),array("n","z"),"my name is jim!");返回:ny nane z jzn!可见,对于needle数组多出来的字符串被替换为了空串。
     如果new_needle数组比needle长,例 如:str_replace(array("m","i"),array("n","z","x"),"my name is jim!")返回ny nane zs jzn!可见new_needle多余的项被忽略。
     5、三个参数都使用数组。
     例如:str_replace(array("m","i"),array("n","z"),array("my name is jim!","the game is over"))返回的数组内容:ny nane zs jzn!the gane zs over
     这个比较好理解,对两个字符串分别执行替换。

php生成验证码,应用实例

发现,帝国的下载页没有验证码,很容易被采集,想着应该下载地址能通过验证码,验证显示总应该可以防掉采集下载地址吧,其他地方没有现成的,只能想办法自己给改了。网上找了个生成验证码的PHP源码,给整合到帝国里去了,最终成功了,庆祝下。哈哈。源码下面保留下。

 

<?
Header("Content-type:image/png");
//定义header,声明图片文件,最好是png,无版权之扰;
//生成新的四位整数验证码
session_start();//开启session;
$authnum_session = ”;
$str = ‘abcdefghijkmnpqrstuvwxyz1234567890’;
//定义用来显示在图片上的数字和字母;
$l = strlen($str); //得到字串的长度;
//循环随机抽取四位前面定义的字母和数字;
for($i=1;$i<=4;$i++)
{
$num=rand(0,$l-1);
//每次随机抽取一位数字;从第一个字到该字串最大长度,
//减1是因为截取字符是从0开始起算;这样34字符任意都有可能排在其中;
$authnum_session.= $str[$num];
//将通过数字得来的字符连起来一共是四位;
}
session_register("authnum_session");
//用session来做验证也不错;注册session,名称为authnum_session,
//其它页面只要包含了该图片
//即可以通过$_SESSION["authnum_session"]来调用

//生成验证码图片,
srand((double)microtime()*1000000);
$im = imagecreate(50,20);//图片宽与高;
//主要用到黑白灰三种色;
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
$gray = ImageColorAllocate($im, 200,200,200);
//将四位整数验证码绘入图片
imagefill($im,68,30,$gray);
//如不用干扰线,注释就行了;
$li = ImageColorAllocate($im, 220,220,220);
for($i=0;$i<3;$i++)
{//加入3条干扰线;也可以不要;视情况而定,因为可能影响用户输入;
imageline($im,rand(0,30),rand(0,21),rand(20,40),rand(0,21),$li);
}
//字符在图片的位置;
imagestring($im, 5, 8, 2, $authnum_session, $white);
for($i=0;$i<90;$i++)
{//加入干扰象素
imagesetpixel($im, rand()%70 , rand()%30 , $gray);
}
ImagePNG($im);
ImageDestroy($im);
?>

 

<?php
session_start();
//在页首先要开启session,
//error_reporting(2047);
session_destroy();
//将session去掉,以每次都能取新的session值;
//用seesion 效果不错,也很方便
?>
<html>
<head>
<title>session 图片验证实例</title>
</head>
<body>
此例为session验证实例
<form action="" method="post">
验证码:<input type="text" name="validate" value="" size=10> <img src="checkNum_session.php"><br>
<input type="submit">
</form>
<?php
//打印上一个session;
echo "上一个session:<b>".$_SESSION["authnum_session"]."</b><br>";
$validate="";
if(isset($_POST["validate"])){
$validate=$_POST["validate"];
echo "您刚才输入的是:".$_POST["validate"]."<br>状态:";
if($validate!=$_SESSION["authnum_session"]){
//判断session值与用户输入的验证码是否一致;
echo "<font color=red>输入有误</font>";
}else{
echo "<font color=green>通过验证</font>";
}
}
/*
//打印全部session;
PrintArr($_SESSION);
function PrintArr($aArray){
echo ‘<xmp>’;
print_r($aArray);
echo ‘</xmp>’;
}
*/
?>

Cannot send session cache limiter – headers already sent

session_start() [function.session-start]: Cannot send session cache limiter – headers already sent (output started at /var/www/inpublisher/php1.php:1)

出现这个问题的解决办法,

在PHP页面首部直接设置OB_START();,就可以解决!
 

修改php.ini中的session.auto_start = 0 为 session.auto_start = 1
output_buffering =改为on或者任何数字。

 

PHP需禁用的危险函数说明

phpinfo()
功能描述:输出 PHP 环境信息以及相关的模块、WEB 环境等信息。
危险等级:中

passthru()
功能描述:允许执行一个外部程序并回显输出,类似于 exec()。
危险等级:高

exec()
功能描述:允许执行一个外部程序(如 UNIX Shell 或 CMD 命令等)。
危险等级:高

system()
功能描述:允许执行一个外部程序并回显输出,类似于 passthru()。
危险等级:高

chroot()
功能描述:可改变当前 PHP 进程的工作根目录,仅当系统支持 CLI 模式
PHP 时才能工作,且该函数不适用于 Windows 系统。
危险等级:高

scandir()
功能描述:列出指定路径中的文件和目录。
危险等级:中

chgrp()
功能描述:改变文件或目录所属的用户组。
危险等级:高

chown()
功能描述:改变文件或目录的所有者。
危险等级:高

shell_exec()
功能描述:通过 Shell 执行命令,并将执行结果作为字符串返回。
危险等级:高

proc_open()
功能描述:执行一个命令并打开文件指针用于读取以及写入。
危险等级:高

proc_get_status()
功能描述:获取使用 proc_open() 所打开进程的信息。
危险等级:高

error_log()
功能描述:将错误信息发送到指定位置(文件)。
安全备注:在某些版本的 PHP 中,可使用 error_log() 绕过 PHP safe mode,
执行任意命令。
危险等级:低

ini_alter()
功能描述:是 ini_set() 函数的一个别名函数,功能与 ini_set() 相同。
具体参见 ini_set()。
危险等级:高

ini_set()
功能描述:可用于修改、设置 PHP 环境配置参数。
危险等级:高

ini_restore()
功能描述:可用于恢复 PHP 环境配置参数到其初始值。
危险等级:高

dl()
功能描述:在 PHP 进行运行过程当中(而非启动时)加载一个 PHP 外部模块。
危险等级:高

pfsockopen()
功能描述:建立一个 Internet 或 UNIX 域的 socket 持久连接。
危险等级:高

syslog()
功能描述:可调用 UNIX 系统的系统层 syslog() 函数。
危险等级:中

readlink()
功能描述:返回符号连接指向的目标文件内容。
危险等级:中

symlink()
功能描述:在 UNIX 系统中建立一个符号链接。
危险等级:高

popen()
功能描述:可通过 popen() 的参数传递一条命令,并对 popen() 所打开的文件进行执行。
危险等级:高

stream_socket_server()
功能描述:建立一个 Internet 或 UNIX 服务器连接。
危险等级:中

putenv()
功能描述:用于在 PHP 运行时改变系统字符集环境。在低于 5.2.6 版本的 PHP 中,可利用该函数
修改系统字符集环境后,利用 sendmail 指令发送特殊参数执行系统 SHELL 命令。
危险等级:高

 

改为: disable_functions =passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

PHP.INI 文件上传设置

1. post_max_size =10M  

表单提交最大数据为10M.此项不是限制上传单个文件的大小,而是针对整个表单的提交数据进行限制的.
限制范围包括表单提交的所有内容.例如:发表贴子时,贴子标题,内容,附件等…

2.file_uploads = On   

是否允许上传文件,如果为OFF您将不能上传文件.

3.upload_tmp_dir = "D:/APM/PHP/uploadtemp/"   

上传文件时系统使用的缓存目录.如果此目录所在磁盘空间不足的话您将不能上传文件.

4.upload_max_filesize =2M  

最大上传文件大小,此项针对上传文件时单个文件的大小.

与post_max_size之间的关系:
当你发布内容时,您post_max_size 设为10M,而此项设成了2M,那么您只能上传最大为2M的附件,且可以同时上传5个.