chroot -改变根目录
描述
布尔的chroot (字符串$目录)
变化的根目录中的当前进程的目录。
此功能只适用于如果您的系统支持,而您使用CLI , CGI或嵌入的SAPI 。另外,此功能需要root权限。
参数
目录
新目录
返回值
返回TRUE或FALSE的成功失败。
注
注:此功能是没有执行在Windows平台上。
新增附注拥有笔记
的chroot
没有用户的贡献说明这一页。
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 (字符串$目录)
更改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 ( ) -获取当前工作目录
相关函数说明
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;
}