首页 > 编程技术 > php

php chroot -改变根目录函数

发布时间:2016-11-25 15:13

下面来看看这款php chroot -改变根目录函数哦,好了我看来看看chroot功能哦,不过有一点可惜chroot不能在windows平台运行

chroot -改变根目录

描述
布尔的chroot (字符串$目录)
变化的根目录中的当前进程的目录。

此功能只适用于如果您的系统支持,而您使用CLI , CGI或嵌入的SAPI 。另外,此功能需要root权限。

参数

目录
新目录


返回值
返回TRUE或FALSE的成功失败。


注:此功能是没有执行在Windows平台上。




 新增附注拥有笔记
的chroot
没有用户的贡献说明这一页。

php curl_init() 实例

function ip($date){
 $rul="http://111cn.net/s?ie=gbk&sr=&z=&cl=3&f=8&wd=$date&ct=0&tn=downreg";
 $ch = curl_init();
 $timeout = 5;
 curl_setopt ($ch, CURLOPT_URL, "$rul");
 curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
 curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
 $contents = curl_exec($ch);
 curl_close($ch);
 preg_match_all("/    来自:(.*?)      此数据由/is",$contents,$address);
 if(empty($address[1][0]))$address[1][0]='未知';
 return $address[1][0];
}

提供一个入门教程chdir的简单函数实例加说明了,好了费话不说多了来看看有关chdir详细过程吧。

chdir -更改目录

描述
布尔chdir (字符串$目录)
更改PHP的当前目录的目录。

参数

目录
新的当前目录


返回值
返回TRUE或FALSE的成功失败。

实例

例如# 1 chdir ( )的例子

<?php

// current directory
echo getcwd() . "n";

chdir('public_html');

// current directory
echo getcwd() . "n";

?>

$path="c:temp"';
chdir($path);
getcwd()
gives you back "c:temp"

$path="c:temp"';
chdir($path);
getcwd()
gives you back "c:temp"

to work around this inconsistency
doing a chdir('.') after the chdir always gives back "c:temp"

 

上面的例子将输出类似于:

/首页/文
/首页/文/ public_html


注:如果安全模式被激活, PHP将检查是否目录该脚本的操作具有相同的UID (所有者)的脚本,正在执行。

又见

getcwd ( ) -获取当前工作目录

本文章主要讲关于php缓冲输出函数php ob_start 与 ob_end_flush()哦

   相关函数说明
   ob_start([string output_callback])- 打开输出缓冲区
  所有的输出信息不在直接发送到浏览器,而是保存在输出缓冲区里面,可选得回调函数用于处理输出结果信息。
   ob_end_flush - 结束(发送)输出缓冲区的内容,关闭输出缓冲区

test.php
   <?
   function test($str){
   return str_replace("php2000","y10k",$str);
   }
   ob_start("test");
   echo "hello php2000";
   ob_end_flush();
   ?>
  这个程序在没有输出信息控制的情况下应该输出为
   hello php2000
  但通过指定了输出控制函数后,输出变为
   hello y10k
  在上面的例子中,使用 echo() 的输出内容将会保存在输出缓冲区中,直到调用了 ob_end_flush()或者脚本运行终止, 然后输出信息由自定义的处理函数进行处理(替换里面的字符串)并返回结果。
  

 

下面是一个给图片加水印的函数,我们会看到很多网站都会给图片加上水印是吧,下面我们就把这个函数给拿出来吧。

 

public function water($filename,$water,$pos=0,$pct=80){
                // 加载水印图片
                $info = $this->getImageInfo($water);
                if(!empty($info[0])){
                        $water_w = $info[0];
                        $water_h = $info[1];
                        $type = $info['type'];
                        $fun  = 'imagecreatefrom'.$type;
                        $waterimg = $fun($water);
                } else{
                        return false;
                }
                // 加载背景图片
                $info = $this->getImageInfo($this->img);
                if(!empty($info[0])){
                        $old_w = $info[0];
                        $old_h = $info[1];
                        $type  = $info['type'];
                        $fun   = 'imagecreatefrom'.$type;
                        $oldimg = $fun($this->img);
                } else{
                        return false;
                }
                // 剪切水印
                $water_w >$old_w && $water_w = $old_w;
                $water_h >$old_h && $water_h = $old_h;

                // 水印位置
                switch($pos){
                        case 0://随机
                    $posX = rand(0,($old_w - $water_w));
                    $posY = rand(0,($old_h - $water_h));
                    break;
                case 1://1为顶端居左
                    $posX = 0;
                    $posY = 0;
                    break;
                case 2://2为顶端居中
                    $posX = ($old_w - $water_w) / 2;
                    $posY = 0;
                    break;
                case 3://3为顶端居右
                    $posX = $old_w - $water_w;
                    $posY = 0;
                    break;
                case 4://4为中部居左
                    $posX = 0;
                    $posY = ($old_h - $water_h) / 2;
                    break;
                case 5://5为中部居中
                    $posX = ($old_w - $water_w) / 2;
                    $posY = ($old_h - $water_h) / 2;
                    break;
                case 6://6为中部居右
                    $posX = $old_w - $water_w;
                    $posY = ($old_h - $water_h) / 2;
                    break;
                case 7://7为底端居左
                    $posX = 0;
                    $posY = $old_h - $water_h;
                    break;
                case 8://8为底端居中
                    $posX = ($old_w - $water_w) / 2;
                    $posY = $old_h - $water_h;
                    break;
                case 9://9为底端居右
                    $posX = $old_w - $water_w;
                    $posY = $old_h - $water_h;
                    break;
                default: //随机
                    $posX = rand(0,($old_w - $water_w));
                    $posY = rand(0,($old_h - $water_h));
                    break;
                }
            // 设定图像的混色模式
                imagealphablending($oldimg, true);
                // 添加水印
                imagecopymerge($oldimg, $waterimg, $posX, $posY, 0, 0, $water_w,$water_h,$pct);
                $fun = 'image'.$type;
                !@$fun($oldimg, $filename,100) && die('保存失败!检查目录是否存在并且可写?');
                  imagedestroy($oldimg);
                  imagedestroy($waterimg);
                  return $filename;
        }

标签:[!--infotagslink--]

您可能感兴趣的文章: