发现有些程序,如discuz。在取ip的先判断 $_SERVER['HTTP_CLIENT_IP'] 再判断 $_SERVER['HTTP_X_FORWARDED_FOR'] 最后 $_SERVER['REMOTE_ADDR']。测试了一下发现 $_SERVER['HTTP_CLIENT_IP'] 和 $_SERVER['HTTP_X_FORWARDED_FOR'] 都可以伪造过来。getenv('HTTP_CLIENT_IP') 和getenv('HTTP_X_FORWARDED_FOR') 也是一样的情况。
PHP代码
- <?php
- $fp = fsockopen("localhost", 80, $errno, $errstr, 30);
- if (!$fp) {
- echo "{$errstr} ({$errno})<br />\n";
- exit;
- }
-
- $out = "GET /xuance/tttt.php HTTP/1.1\r\n";
- $out .= "...
想用一些渐变颜色的图片做背景,但无奈美工是一点都不会。所以只好用php来完成这个工作。
下面的例子是从蓝色渐变成红色。效果还算平滑。

PHP代码
- <?php
- $width = 500;
- $height = 20;
- $color1 = "0000FF";
- $color2 = "FF0000";
-
- $im = imagecreatetruecolor($width, $height);
- list($R1, $G1, $B1) = RGBtodec($color1);
- list($R2, $G2, $B2) = RGBtodec($color2);
- for ($i=1; $i<=$width; $i++){
- $R = ($R2*$i+($width-$i)*$R1)/$width;
- $G = ($G2*$i+($width-$i)*$G1)/$width;
- $B = ($B2*$i+($width-$i)*$B1)/$width;
-
- ...
之前面试的时候碰到过这个问题,没有能回答出来。今天搜集了一些资料,总结了一下就记了下来,应该以后还要上。顺便也和大家讨论下。
PHP代码
- <?php
- $arr = array(
- array('id'=>1, 'pid'=>0, 'order'=>0),
- array('id'=>2, 'pid'=>0, 'order'=>1),
- array('id'=>3, 'pid'=>2, 'order'=>0),
- array('id'=>4, 'pid'=>0, 'order'=>2),
- array('id'=>5, 'pid'=>3, 'order'=>0),
- array('id'=>6, 'pid'=>1, 'order'=>0),
- array('id'=>7, 'pid'=>1, 'order'=>1)
- );
-
- function order($a,$b) {
- ...