zhphp framework(二十一) file 文件类
2015-12-13 10:01
591 查看
<?php /** * Created by JetBrains PhpStorm. * User: 张华 * Date: 14-3-8 * Time: 下午12:21 * QQ: 746502560@qq.com * To change this template use File | Settings | File Templates. */ final class file { /** * 创建目录 * @param type $dir * @return boolean */ public static function mk_dir($dirs,$mode=0755){ set_time_limit(0); if(is_array($dirs)){ foreach($dirs as $dir){ self::mk_dir($dir,$mode); } }else if(is_string($dirs)){ if (is_dir($dirs) || @mkdir($dirs,$mode,true)); } unset($dirs,$mode); return true; } /** * @param $files * @return bool */ public static function touchFile($files){ if(is_array($files)){ $count=count($files); for($i=0;$i<$count;$i++){ if( ! is_file($files[$i])){ header("Content-type: text/html; charset=utf-8"); $fo= fopen($files[$i],"w") or die("Unable to open file!"); chmod($files[$i],0777); fclose($fo); } } unset($files,$count); }else{ if( ! is_file($files)){ header("Content-type: text/html; charset=utf-8"); $fo= fopen($files,"w") or die("Unable to open file!"); chmod($files,0777); fclose($fo); } } return true; } /**指定读取文件从多少行 到多少行 * * @param $file * @param $startLine * @param $endLine * @return bool|string */ public static function GetFilePart($file, $startLine, $endLine){ if($endLine< 0) { return false; } $return = ''; $files = file($file); if($startLine < 0) { $startLine = 0; } $iCpt = count($file); if($iCpt < $endLine) { $endLine = $iCpt; } for($i = $startLine; $i <= $endLine; $i++) { //if($i < count($files) && $i >= 0) $return .= $files[$i]; } return $return; } public static function downloadFile($file){ /*Coded by Alessio Delmonti*/ $file_name = $file; $mime = 'application/force-download'; header('Pragma: public'); // required header('Expires: 0'); // no cache header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Cache-Control: private',false); header('Content-Type: '.$mime); header('Content-Disposition: attachment; filename="'.basename($file_name).'"'); header('Content-Transfer-Encoding: binary'); header('Connection: close'); readfile($file_name); // push it out exit(); } /** * curl 远程调用 * @param $urls * @param $delay * @return array */ public static function rolling_curl($urls, $delay) { $queue = curl_multi_init(); $map = array(); foreach ($urls as $url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_TIMEOUT, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_NOSIGNAL, true); curl_multi_add_handle($queue, $ch); $map[(string) $ch] = $url; } $responses = array(); do { while (($code = curl_multi_exec($queue, $active)) == CURLM_CALL_MULTI_PERFORM) ; if ($code != CURLM_OK) { break; } while ($done = curl_multi_info_read($queue)) { $info = curl_getinfo($done['handle']); $error = curl_error($done['handle']); $results = callback(curl_multi_getcontent($done['handle']), $delay); $responses[$map[(string) $done['handle']]] = compact('info', 'error', 'results'); curl_multi_remove_handle($queue, $done['handle']); curl_close($done['handle']); } if ($active > 0) { curl_multi_select($queue, 0.5); } } while ($active); curl_multi_close($queue); return $responses; } }
相关文章推荐
- Android Native 绘图方法
- C#中struct和class的区别详解
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- 深入了解PHP类Class的概念
- jquery 表单验证之通过 class验证表单不为空
- setAttribute 与 class冲突解决
- JavaScript中的类(Class)详细介绍
- javascript面向对象包装类Class封装类库剖析
- jQuery使用hide方法隐藏指定元素class样式用法实例
- jQuery给多个不同元素添加class样式的方法
- jQuery点击改变class并toggle及toggleClass()方法定义用法
- JavaScript更改class和id的方法
- 一篇入门的php Class 文章
- 深入C++中struct与class的区别分析
- js中设置元素class的三种方法小结
- c++中typename和class的区别介绍
- php class类的用法详细总结
- Windows平台的 PHP 报错 Fatal error: Class COM not found in 的解决方法
- JavaScript跨浏览器获取页面中相同class节点的方法