//获取网上的一个文件
function getUrlImage($url, $file = '', $maxExe = 0, $safe = false){
$urlExt = explode('.', $url);
$fileExt = array('txt','jpg','gif','png');
if(!in_array(end($urlExt), $fileExt, true)) return false;
$file = ($file)? $file.$urlExt : basename($url);
$file = rand(1,1000).$file;
ob_start(); //开启输出缓冲
set_time_limit($maxExe); //开启最大运行时间
readfile($url);//读入一个文件并写入到输出缓冲
$data = ob_get_contents();
ob_end_clean();
file_put_contents($file,$data);
if($safe && is_executable($file)){//为安全起见,判定一下文件是否可执行
unlink($file);
return false;
}
return $file;
}

getUrlImage('http://www.test.com/3675.jpg','newName');

//批量生成cookie
function mySetCookie($data, $name){
if(empty($data) || empty($name))return;
$args = func_get_args();
$time = empty($args[2])? time() + 3600 : time() + $args[2];
$path = empty($args[3])? '' : $args[3];
$domain = empty($args[4])? '' : $args[4];
$secure = empty($args[5])? '' : $args[5];
if(is_array($data)){
foreach($data as $key => $val){
$full = "{$name}[$key]";
setcookie($full, $val, $time, $path, $domain, $secure);
}
}else{
setcookie($name, $data, $time, $path, $domain, $secure);
}

}

$data = array('name' => '李四', 'age' => 15);
mySetCookie($data,'userInfo');
print_r($_COOKIE);

//冒泡排序
function arrSort(&$arr, $asc = ''){
$times = count($arr) - 1;
for($i = 0; $i < $times; $i++){
for($j = 0; $j < $times - $i; $j++){
if($arr[$j] > $arr[$j + 1]){
$temp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $temp;
}
}
}
if('' != $asc) $arr = array_reverse($arr, false);//反转数组元素
}

//选择排序
function seleSort(&$arr){
$times = count($arr) - 1;
$jMax = count($arr);
for($i = 0; $i < $times; $i++){
$min = $arr[$i];
$minId = $i;
for($j = $i + 1; $j < $jMax; $j++){
if($min > $arr[$j]){
$min = $arr[$j];
$minId = $j;
}
}
$temp = $arr[$i];
$arr[$i] = $arr[$minId];
$arr[$minId] = $temp;
}
}

//插入排序
function inserSort(&$arr){
$times = count($arr);
for($i = 1; $i < $times; $i++){
$insert = $arr[$i];
$insertId = $i - 1;
while($insertId >= 0 && $insert < $arr[$insertId]){
$arr[$insertId + 1] = $arr[$insertId];
$insertId--;
}
$arr[$insertId + 1] = $insert;
}
}

//计算两个文件的相对路径。
function relative_dir($fileA, $fileB){//A相当于B,所在目录
$aPath = explode('/',dirname($fileA));
$bPath = explode('/',dirname($fileB));
$bLen = count($bPath);
$j = 1;
for($i = 1; $i < $bLen; $i++){
if(isset($bPath) && isset($aPath)){
if($aPath[$i] == $bPath[$i]){$j++;}//累计相同路径部分
if($aPath[$i] != $bPath[$i]){$path .= '../';}//不同的,则增加退回上级
}
}
$path .= implode('/',array_slice($aPath, $j)).'/'.basename($fileA);
return $path;
}

$a = 'a/b/c/test/5/8/aaa.php';
$b = 'a/b/c/check/1/2/3/4/bbb.php';
echo relative_dir($a,$b);

//以附件方式实现文件下载:
$file = 'e:/个人简历.doc';
$file = iconv('utf-8', 'gb2312',$file);
if(file_exists($file)){
$fname = basename($file);
$fsize = filesize($file);
header("Content-type:application/octet-stream");//二进制数据
header("Content-Disposition:attachment;filename={$fname}");//附件形式
header("Accept-ranges:bytes");
header("Accept-length:".$fsize);
readfile($file);
}else{
exit('flie not found!');
}

遍历一个目录,及其子目录:
function recurDir($pathName){
$result = array();
$temp = array();
if(!is_dir($pathName) || !is_readable($pathName)) return null;
$allFiles = scandir($pathName);
foreach($allFiles as $fileName){
if(in_array($fileName, array('.','..')))continue;
$fullName = $pathName . '/' . $fileName;
if(is_dir($fullName)){
$result[$fileName] = recurdir($fullName);
}else{
$temp[] = $fileName;
}
}
foreach($temp as $f){
$result[] = $f;
}
return $result;
}
$pathName = 'D:\AppServ\www\zbseoag\\';
print_r(recurDir($pathName));

//从URL中获取文件扩展名:
function getExt($url){
$arr = parse_url($url);//把URL解析成数组
$file = basename($arr['path']);
$ext = explode('.',$file);
return end($ext);
}

//PHP验证email格式
function checkEmail($email){
$pattern = "/([a-z0-9]*[-_/.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[/.][a-z]{2,3}([/.][a-z]{2})?/i";
return preg_match($pattern,$email);
}

//文件上传
<script>
function addUpload(){
document.getElementById("upfiles").innerHTML += '<li>文件:<input type="file" name="files[]" /></li>';
}
function resetUpload(){
document.getElementById("upfiles").innerHTML = '<li>文件:<input type="file" name="files[]" /></li>';
}
</script>
<form action="" method="post" enctype="multipart/form-data" >
<ul id="upfiles">
<li>文件:<input type="file" name="files[]" /></li>
</ul>
<input type="submit" value="提交" />
<input type="button" value="增加上传框" onClick="addUpload()" />
<input type="button" value="重设上传框" onClick="resetUpload()" />
</form>

$files = 'files';//files是$_FILES中的一个元素数组,并所上传文件信息进行了归类
$upDir = './upImg/';
$fTypes = 'jpg|gif|txt|chm';

function upFilse($files, $upDir, $fTypes){
if(isset($_FILES[$files]['name'])){
if(!is_dir($upDir)) mkdir($upDir, 0777, true) or exit('上传目录创建失败!');
$ftypeArr = explode('|',$fTypes);
foreach($_FILES[$files]['name'] as $i => $value){
$fType = strtolower(end(explode(".",$_FILES[$files]['name'][$i])));
if(in_array($fType, $ftypeArr)){
$path = $upDir.time().$_FILES[$files]['name'][$i];//指定目录,且包含有文件名
move_uploaded_file($_FILES[$files]['tmp_name'][$i], $path);//移到指定目录
if($_FILES[$files]['error'][$i] == 0){
$file[$_FILES[$files]['name'][$i]] = $path;
list($name, $path) = each($file);//each(数组)返回当前由键名与键值所构成的数组;list(变量1, 变量n 【或数组】) = 数字索引的数组,将值赋给变量。
$sql = "INSERT INTO `database`.`table`(name, path) VALUES ('$name', '$path')";
$msg[] = $value.'文件上传成功';
}else
$msg[] = $value.'文件上传失败!';
}else
$msg[] = $value.'文件格式不正确!';
}
return $msg;
}
}
print_r(upFilse($files, $upDir, $fTypes));

//求今天是星期几:
$time = getdate();//获取当前时间戳中的时间信息
$weekday = array('星期天', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六');
$wday = $time['wday'];//当前是一个星期中的第几天
echo date("今天是:Y年m月d日H:i:s $weekday[$wday]");

//求下周一是几月几日:
$time = time();//当前时间戳
$weekday = date('w');//当天的数字星期
switch($weekday){
case 0: $nextMonday = $time+86400;break;//星期天则加一天
case 1: $nextMonday = $time+7*86400;break;//星期一,则加七天
case 2: $nextMonday = $time+6*86400;break;
case 3: $nextMonday = $time+5*86400;break;
case 4: $nextMonday = $time+4*86400;break;
case 5: $nextMonday = $time+3*86400;break;
case 6: $nextMonday = $time+2*86400;break;
}
echo date('Y-m-d',$nextMonday);

//逐行读取文件指定行数的内容:
function getRowData($file, $row = 0, mark = false){
$fhandle = fopen($file,'rb');
$row = ($row == 0)? filesize($file) : $row;
while($row >0 && !feof($fhandle)){
$data[] = (mark)? fgets($fhandle) : fgetss($fhandle);
$row--;
}
fclose($fhandle);
}

//读取文件指定字符长度
function getLetterData($file, $num = 0, mark = false){
$fhandle = fopen($file,'rb');
$row = ($num)? filesize($file) : $num;
$data = fread($fhandle, $num);
fclose($fhandle);
}
//删除目录中在数据库中没有记录的图片
public function delImg($data, $dir = '.'){
$files = scandir($dir);
$delFiles = array_diff($allFiles,$data);
foreach($delFiles as $name){
$file = rtrim($dir,'/').'/'.$name;
unlink($file);
echo $file.'<br/>';
}
}

PHP 小代码的更多相关文章

  1. 【processing】小代码

    今天无意间发现的processing 很有兴趣 实现很简洁 void setup(){ } void draw(){ background(); && mouseY > heig ...

  2. 小代码编写神器:LINQPad 使用入门

    原文:小代码编写神器:LINQPad 使用入门 一:概述 1:想查看程序运行结果,又不想启动 VS 怎么办? 2:想测试下自己的 C# 能力,不使用 VS 的智能感知,怎么办? 那么,我们有一个选择, ...

  3. Python小代码_2_格式化输出

    Python小代码_2_格式化输出 name = input("name:") age = input("age:") job = input("jo ...

  4. Python小代码_1_九九乘法表

    Python小代码_1_九九乘法表 max_num = 9 row = 1 while row <= max_num: col = 1 while col <= row: print(st ...

  5. 简单的Java逻辑小代码(打擂台,冒泡排序,水仙花数,回文数,递归)

    1.打擂台 简单的小代码,打擂台.纪念下过去,祝福下新人. public static void main(String[] args){ int[] ld = {1,4,2,10,8,9,5}; i ...

  6. python的mysql小代码

    我因为懒,就想写个批量insert数据的小代码 这里是代码 # _*_ encoding:utf-8 _*_ import os import MySQLdb import numpy as np d ...

  7. 一段小代码秒懂C++右值引用和RVO(返回值优化)的误区

    关于C++右值引用的参考文档里面有明确提到,右值引用可以延长临时变量的周期.如: std::string&& r3 = s1 + s1; // okay: rvalue referen ...

  8. 【processing】小代码4

    translate(x,y);  移动坐标原点到x,y处 rotate(angle); 坐标沿原点顺时针转动angle度 scale(n); 绘制图像放大n倍 pushMatrix() 将当前坐标压入 ...

  9. Android版微信小代码(转)

    以下代码仅适用于Android版微信: //switchtabpos:让微信tab更贴合Android Design 如果你并不喜欢微信Android版和iOS端同用一套UI,现在有一个小方法可以实现 ...

  10. printf 小代码 大问题

    技术 对于我来说 是我前进的动力 虽然有时候感觉会枯燥乏味 不过没关系 放松一下紧张的心态 做一些你能够是你进步的事情  这样 你才会觉得  每天都过得很充实  学海无涯  坚持追求你所想要实现的梦想 ...

随机推荐

  1. Java环境变量批处理文件

    缘由 公司需要配置大量的虚机,每个上面都要求安装 JAVA,配置环境变量,所以要求写一个批处理,一键配置环境变量 方式 网上找到了3中方式, 第一种是使用 set设置环境 变量,但是这样设置的只是临时 ...

  2. IOS 在IOS6中设置navigationBar背景图片 会有一条 黑色阴影 --- 解决方案

    //给navigationBar设置背景图片 if ([self.navigationController.navigationBar respondsToSelector:@selector(set ...

  3. [Neural Networks] Dropout阅读笔记

    多伦多大学Hinton组 http://www.cs.toronto.edu/~rsalakhu/papers/srivastava14a.pdf 一.目的 降低overfitting的风险 二.原理 ...

  4. sql知识

    SQL 基本知识 SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的 ...

  5. compser 执行命令提示do not run composer as root/super !

    这个是因为composer为了防止非法脚本在root下执行,解决办法随便切换到非root用户即可

  6. 禁用微信 webview 调整字体大小

    原文:http://www.grycheng.com/?p=2411 微信 webview 内置了调整字体大小的功能,对于网页的可用性来说是一个很实用的功能.一些网页的字体设置过小导致用户看不清文字, ...

  7. 关于C# 调用 C dll时,抓获C的异常

    最近一直被C# 调用native code时的内存错误,各种错误所困扰.而且在.net 4.0中非托管代码的异常不能被托管代码抓获,导致程序直接crash. 最终找到了.net 的方法.MSDN有关于 ...

  8. bootstrap的栅格布局不支持IE8该如何解决

    用bootstrap的栅格布局在IE8上出现失效的情况,通常有两种解决方式 方法/步骤   方法一:引用第三方js,一个叫respond.js的东西,github上可以搜到   方法二:由于IE8不支 ...

  9. Jquery的attr属性

    在JS中设置节点的属性与属性值用到setAttribute(),获得节点的属性与属性值用到getAttribute(),而在jquery中,用一个attr()就可以全部搞定了,赞一个先 ^^ jque ...

  10. [UOJ 25] [IOI 2014] Wall 【线段树】

    题目链接:UOJ - 25 题目分析 每个操作就是将被操作的数限制在一个区间,比如 Set_Max(5) 就是将被操作的数限定在了 [5, INF] 的区间里. 这些操作是可加的,但是必须按照顺序,不 ...