PHP基础

PHP Filesystem 函数

文件读取:

// NoAlike.txt
爱的色放付付付
阿斯蒂芬老客户
// 读取NoAlike.txt文件的内容
//假设我们有一个多行的文件叫NoAlike.txt,没有的话你可以新建一个这个文件 
$filename = 'NoAlike.txt'; 
//打开这个文件,将文件内容赋值给
$filestring $filestring = file_get_contents($filename); 
//因为每一行有一个回车即\n,我用\n来把这个字符串切割成数组
$filearray = explode("\n", $filestring); 
//把切割成的数组,下标赋值给$key,值赋值给$val,每次循环将$key加1。
while (list($key, $val) = each($filearray)) { 
	 ++$key;
	 $val = trim($val); 
	 print 'Line' . $key .':'. $val.'<br />'; 
}
// 最终输出:
Line1:爱的色放付付付
Line2:阿斯蒂芬老客户

以只读模式打开NoAlike.txt

<?php
    //以只读模式打开NoAlike.txt
    $fp = fopen('NoAlike.txt', "r");
    /**
     * var_dump()操作一下$fp看看效果,
     * 输出的是不是只有类型提示的是resource
     * */
    var_dump($fp);
    $contents = fread($fp,1024);
    fclose($fp);
    echo $contents;
?>
// 输出为:
resource(3, stream)
爱的色放付付付 阿斯蒂芬老客户

写入文件:

<?php
    header("Content-Type:text/html;charset=UTF-8");
    $data = "我是一个兵,来自老百姓";
    $numbytes = file_put_contents('binggege.txt', 
$data);
    if($numbytes){
        echo '写入成功,我们读取看看结果试试:';
        echo file_get_contents('binggege.txt');
    }else{
        echo '写入失败或者没有权限,注意检查';
    }
?>
// 文件不存在,会自动创建binggege.txt文件,并把$data的内容写入
// 刷新多次,文件中依然只写了$data一句话

计算某文件有多少字节

<?php
    header("Content-Type:text/html;charset=UTF-8");
    $filename = 'test.txt';
    $fp= fopen($filename, "w");
    $len = fwrite($fp, '我是一只来自南方的狼,
一直在寻找心中的花姑娘');
    fclose($fp);
    print $len."字节被写入了\n";
?>

创建临时文件

<?php
    header("Content-Type:text/html;charset=UTF-8");
    //创建了一个临时文件
    $handle = tmpfile();
    //向里面写入了数据
    $numbytes = fwrite($handle, '写入临时文件');
    //关闭临时文件,文件即被删除
    fclose($handle);
    echo  '向临时文件中写入了'.$numbytes . '个字节';
?>
文件不存在,会自动创建并写入内容,
创建临时文件,写入成功,计算字节,关闭即销毁文件

重命名文件

<?php
    //旧文件名
    $filename = 'test.txt';
    //新文件名
    $filename2 = $filename . '.old';
    //修改名字
    rename($filename, $filename2);
?>

// 需保证旧文件存在,不然无法更改

复制文件

<?php
    //旧文件名
    $filename = 'binggege.txt';
    //新文件名
    $filename2 = $filename . '_new';
    //复制文件
    copy($filename, $filename2);
?>

// binggege.txt_new

安装文件锁:

<?php
header("Content-Type:text/html;charset=UTF-8");
if(file_exists('install.lock')){
    echo '已安装,请不要再次进行安装';
    exit;
}else{
    echo '请安装文件锁';
}
?>

获取文件的扩展名

//获取扩展名extension伸展,扩展。ext文件系统
function getExtension($filename){
	//substr(string,start,length)函数返回字符串的一部分。
	/*strrpos(string,find,start)
	函数查找字符串在另一个字符串中最后一次出现的位置
	如果成功,则返回位置,否则返回 false*/
	$myext = substr($filename, strrpos($filename, '.'));
	return str_replace('.','',$myext); 
	//str_replace(find,replace,string,count)函数使用一个字符串替换字符串中的另一些字符
}
$filename = '我的文档.doc';
echo getExtension($filename);

获取文件大小并格式化

//PHP获取文件大小并格式化
function formatSize($size) {
	$sizes = array(" Bytes", " KB", " MB", " GB", " TB", " PB", " EB", " ZB", " YB");
	if ($size == 0) {
		return('n/a');
	}else{
		$i = floor(log($size, 1024));
		return (round($size/pow(1024, $i), 2) . $sizes[$i]);
	}
}
$thefile = filesize('16.php');
echo "{$thefile}<br>";
echo formatSize($thefile);

列出目录下的文件名

//PHP列出目录下的文件名 
function listDirFiles($DirPath){
	if($dir = opendir($DirPath)){

		while(($file = readdir($dir)) !== false){

			if(!is_dir($DirPath.$file)){
				echo "filename: $file<br />";
			}
			
		}
	}
}
listDirFiles('./');

获取当前文件的绝对地址:

<?php
//str_replace() 字符串替换操作,区分大小写 mix str_replace(mix
//$search,,mix $replace,mix $subject[,int &$num])
$_current_file = str_replace(array('/', '\\'), 
DIRECTORY_SEPARATOR, __FILE__);
define('__CUR_FILE__', $_current_file);
echo __CUR_FILE__;
?>

创建图片:

<?php
//创建图片
$img = imagecreatetruecolor(500, 500);
//分配颜色
$red = imagecolorallocate($img, 255, 0, 0);
$green = imagecolorallocate($img, 0, 255, 0);
$blue = imagecolorallocate($img, 0, 0, 255);
$pur = imagecolorallocate($img, 255, 0, 255);
$yellow = imagecolorallocate($img, 121, 72, 0);
//填充背景
imagefilledrectangle($img, 0, 0, 500, 500, $green);
//画对角线
imageline($img, 0, 0, 500, 500, $red);
imageline($img, 500, 0, 0, 500, $blue);
//画圆
imagefilledellipse($img, 250, 250, 200, 200, $yellow);
//圆中间画矩形
imagefilledrectangle($img, 200, 200, 300, 300, $blue);
//保存图片,图片名为haha.jpg
imagejpeg($img, 'haha.jpg');
//销毁资源
imagedestroy($img);
?>

使用CURL请求

<?php
header("Content-Type:text/html;charset=UTF-8");
$content = get('http://www.xmtnews.com/events');
var_dump($content);

preg_match('/<section class="ov">(.*?)<div class="hr-10"><\/div>/mis',$content,$match);
//将正则匹配到的内容赋值给$area
var_dump($match);
$area = $match[1];
preg_match_all('/<h3><a href="(.*?)" title=".*?" class="headers" target="_blank">(.*?)<\/a><\/h3>/', $area, $find);
var_dump($find);
foreach($find[0] as $key=>$val){
    echo $val;
}
function get($url) {
    //初使化curl
    $ch = curl_init();
    //请求的url,由形参传入
    curl_setopt($ch, CURLOPT_URL, $url);
    //将得到的数据返回
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    //不处理头信息
    curl_setopt($ch, CURLOPT_HEADER, 0);
    //连接超过10秒超时
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    //执行curl
    $output = curl_exec($ch);
    //关闭资源
    curl_close($ch);
    //返回内容
    return $output;
}
?>

创建一个目录树

/**
*创建一个目录树
*@param[type]$dir[description]
*@param integer$mode[description]
*@return[type][description]
*/
function mkdirs($dir,$mode=0777){
  if(!is_dir($dir)){
    mkdirs(dirname($dir),$mode);
    return mkdir($dir,$mode);
  }
  return true;
}