PHP 小代码
//获取网上的一个文件
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 小代码的更多相关文章
- 【processing】小代码
今天无意间发现的processing 很有兴趣 实现很简洁 void setup(){ } void draw(){ background(); && mouseY > heig ...
- 小代码编写神器:LINQPad 使用入门
原文:小代码编写神器:LINQPad 使用入门 一:概述 1:想查看程序运行结果,又不想启动 VS 怎么办? 2:想测试下自己的 C# 能力,不使用 VS 的智能感知,怎么办? 那么,我们有一个选择, ...
- Python小代码_2_格式化输出
Python小代码_2_格式化输出 name = input("name:") age = input("age:") job = input("jo ...
- Python小代码_1_九九乘法表
Python小代码_1_九九乘法表 max_num = 9 row = 1 while row <= max_num: col = 1 while col <= row: print(st ...
- 简单的Java逻辑小代码(打擂台,冒泡排序,水仙花数,回文数,递归)
1.打擂台 简单的小代码,打擂台.纪念下过去,祝福下新人. public static void main(String[] args){ int[] ld = {1,4,2,10,8,9,5}; i ...
- python的mysql小代码
我因为懒,就想写个批量insert数据的小代码 这里是代码 # _*_ encoding:utf-8 _*_ import os import MySQLdb import numpy as np d ...
- 一段小代码秒懂C++右值引用和RVO(返回值优化)的误区
关于C++右值引用的参考文档里面有明确提到,右值引用可以延长临时变量的周期.如: std::string&& r3 = s1 + s1; // okay: rvalue referen ...
- 【processing】小代码4
translate(x,y); 移动坐标原点到x,y处 rotate(angle); 坐标沿原点顺时针转动angle度 scale(n); 绘制图像放大n倍 pushMatrix() 将当前坐标压入 ...
- Android版微信小代码(转)
以下代码仅适用于Android版微信: //switchtabpos:让微信tab更贴合Android Design 如果你并不喜欢微信Android版和iOS端同用一套UI,现在有一个小方法可以实现 ...
- printf 小代码 大问题
技术 对于我来说 是我前进的动力 虽然有时候感觉会枯燥乏味 不过没关系 放松一下紧张的心态 做一些你能够是你进步的事情 这样 你才会觉得 每天都过得很充实 学海无涯 坚持追求你所想要实现的梦想 ...
随机推荐
- C#当中的多线程_任务并行库(中)
发现自己有点懒了!也可能是越往后越难了,看书理解起来有点费劲,所以这两天就每天更新一点学习笔记吧. 4.5 将APM模式转化为任务 书上提供的三种方式 方式一: class Program ...
- Android - 折线图
使用Android的canvas,画折线图:代码为: package spt.view; import android.annotation.SuppressLint; import android. ...
- Angularjs总结(二)过滤器使用
html页面: <table> <thead> <tr> <td class="td">序号</td> <td c ...
- iOS消息推送机制
iOS消息推送的工作机制可以简单的用下图来概括: Provider是指某个iPhone软件的Push服务器,APNS是Apple Push Notification Service的缩写,是苹果的服务 ...
- CSS 组合选择符
CSS 组合选择符 组合选择符说明了两个选择器直接的关系. CSS组合选择符包括各种简单选择符的组合方式. 在 CSS3 中包含了四种组合方式: 后代选取器(以空格分隔) 子元素选择器(以大于号分隔) ...
- 24种设计模式--桥梁模式【Bridge Pattern】
今天我要说说我自己,梦想中的我自己,我身价过亿,有两个大公司,一个是房地产公司,一个是服装制造业,这两个公司都很赚钱,天天帮我在累加财富,其实是什么公司我倒是不关心,我关心的是是不是在赚钱,赚了多少, ...
- windows phone 之ListBox模板选择
有时做项目时,会遇到一种情况:需要把获取到的数据集合显示到首页,比如新闻,但是: 新闻也分类别啊,比如:图片类新闻.文字类新闻.视频类新闻. 那我们可能采用的模板就不一样了,那么,如何根据类别来选择模 ...
- ARM开发板系统移植-----rootfs的制作
前面两篇文章分别介绍了mini2440开发板上运行的bootloader和kernel,到这里系统启动后其实是停留在一个“僵死”的状态---无法挂载根文件系统. 这里将介绍如何制作一个根文件系统,并且 ...
- mysql5.7.14安装与配置
参考文章链接: http://jingyan.baidu.com/article/afd8f4de9006d934e286e9fd.html http://www.cnblogs.com/wenthi ...
- Android Linux自带iptables配置IP访问规则
利用Linux自带iptables配置IP访问规则,即可做到防火墙效果