- 浏览: 1104589 次
- 性别:
- 来自: 广州
-
文章分类
- 全部博客 (290)
- php (65)
- javascript (36)
- html5 (31)
- thinkphp (9)
- mysql (16)
- jquery (13)
- node.js (9)
- css (9)
- android 开发 (8)
- flex (5)
- java (3)
- apache (8)
- linux (8)
- git (5)
- web (5)
- wordpress (9)
- mongodb (2)
- redis (5)
- yaf (6)
- python (4)
- big data (1)
- sphinx (1)
- html (1)
- bootstrap (1)
- vue (1)
- laravel (1)
- test (0)
最新评论
-
July01:
推荐用StratoIO打印控件,支持网页、URL、图片、PD、 ...
如何解决非IE浏览器的web打印 -
flashbehappy:
同一个视频,有mp4,ogg两种格式的。在chrome,fir ...
firefox chrom safari 对video标签的区别 -
xmdxzyf:
可以在网站(www.sosoapi.com)上试下在线表单方式 ...
用swagger-php/ui做API测试 -
flex_莫冲:
a2631500 写道"看了源码,设置Backbon ...
backbone与php交互 -
a2631500:
"看了源码,设置Backbone.emulateJS ...
backbone与php交互
1、出生日期转换成年龄
2、object转换成array
3、array转换成object
4、日期格式化
5、HTML格式编码转换
6、当前日期
7、多维数组排序
8、创建目录
9、删除目录
10、生成随机文件名
11、验证文件类型
12、解压缩压缩包
13、创建压缩包
14、复制文件夹
15、验证EMAIL格式
private function changeBirthdayToAge($birthday) { $interval = date(time() - strtotime($birthday)); return intval($interval / (365 * 60 * 60 * 24 )) + 1; }
2、object转换成array
function objectToArray($d) { if (is_object($d)) { // Gets the properties of the given object // with get_object_vars function $d = get_object_vars($d); } if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return array_map(__FUNCTION__, $d); } else { // Return array return $d; } }
3、array转换成object
function arrayToObject($d) { if (is_array($d)) { /* * Return array converted to object * Using __FUNCTION__ (Magic constant) * for recursive call */ return (object) array_map(__FUNCTION__, $d); } else { // Return object return $d; } }
4、日期格式化
function microtime_format() { $time = number_format(microtime(true),8,'.',''); return explode(".", $time); }
5、HTML格式编码转换
function htmlspecialcharsx($str) { $s = htmlspecialchars($str); return str_replace('&#', '&#', $s); }
6、当前日期
function datetime() { return date("Y-m-d H:i:s"); }
7、多维数组排序
function multi_array_sort($multi_array, $sort_key, $sort=SORT_ASC){ if(is_array($multi_array)){ foreach ($multi_array as $row_array){ if(is_array($row_array)){ $key_array[] = $row_array[$sort_key]; } else { return false; } } } else { return false; } array_multisort($key_array, $sort, $multi_array); return $multi_array; }
8、创建目录
/** +---------------------------------------------------------- * 创建目录 +---------------------------------------------------------- * @access private * @param dir 目录地址 * @return boolean +---------------------------------------------------------- */ public function createDir($dir) { // 創建目錄 if (!is_dir($dir)) { return mkdir($dir, 0755, true); } return TRUE; }
9、删除目录
/** +---------------------------------------------------------- * 删除指定目录下的所有文件及目录 +---------------------------------------------------------- * @access public * @param dirName 目录路径 * @return boolean +---------------------------------------------------------- */ public function removeDir($dirName) { $handle = opendir("$dirName"); if (!$handle) return FALSE; while (false !== ($item = readdir($handle))) { if ($item != "." && $item != ".."){ if(is_dir("$dirName/$item")){ $this->removeDir("$dirName/$item"); }else{ unlink("$dirName/$item"); } } } closedir($handle); return rmdir($dirName); }
10、生成随机文件名
/** +---------------------------------------------------------- * 創建文件名 +---------------------------------------------------------- * @access private * @return filename +---------------------------------------------------------- */ public function generalFileName() { $now = microtime_format(); return date('YmdHis', $now[0]) . $now[1]; }
11、验证文件类型
/** +---------------------------------------------------------- * 驗證文件類型 +---------------------------------------------------------- * @access private * @param fileType string 文件後綴 * @return boolean +---------------------------------------------------------- */ public function checkFileType($fileType, $allowType) { return in_array(strtolower($fileType), $allowType); }
12、解压缩压缩包
/** +---------------------------------------------------------- * 解压缩zip包 +---------------------------------------------------------- * @access public * @return boolean +---------------------------------------------------------- */ private function unzip($path) { $zip = new ZipArchive(); if ($zip->open($path) === FALSE) return FALSE; $zip->extractTo(substr($path, 0, -4)); $zip->close(); return TRUE; }
/** +---------------------------------------------------------- * 解压缩zip包 linux 命令 +---------------------------------------------------------- * @access public * @return boolean +---------------------------------------------------------- */ private function unzip_linux($path) { $target = substr($path, 0, strlen($path)-4); exec("unzip -o $path -d $target"); return TRUE; }
13、创建压缩包
/** +---------------------------------------------------------- * 生成压缩包 +---------------------------------------------------------- * @access public * @return boolean +---------------------------------------------------------- */ private function createZip($dirName) { $zip = new ZipArchive(); $filename = $dirName . ".zip"; if(file_exists($filename)) unlink($filename); if (!$zip->open($filename, ZIPARCHIVE::CREATE)) return "create zip file failed"; $fileArr = $this->recursiveFiles($dirName); foreach ($fileArr as $key => $value) { $zip->addFile($value['path'], $value['parentFolder'] . $value['fileName']); } $zip->close(); return TRUE; } /** +---------------------------------------------------------- * 通过linux命令生成压缩包 +---------------------------------------------------------- * @access public * @return boolean +---------------------------------------------------------- */ private function createZip_linux($fileName, $directory, $dirName) { $zipFile = $fileName . ".zip"; $currPath = getcwd(); if (!chdir($dirName)) return FALSE; // 跳转到上传目录 exec("zip -q -m -r $zipFile *"); if (!chdir($currPath)) return FALSE; // 返回项目根目录 // 将生成的zip文件放到上一层目录 $source = $dirName . '/' . $zipFile; $target = C("PAGE_ROOT") . C('ACTIVE_VOLUME') . $directory . $zipFile; exec("mv -f $source $target"); return TRUE; }
14、复制文件夹
/** +---------------------------------------------------------- * 复制文件夹 +---------------------------------------------------------- * @access public * @param originalPath 原始文件路径 * @param destPath 目标文件路径 * @return boolean +---------------------------------------------------------- */ public function copyFolder($originalPath, $destPath) { if (is_dir($originalPath)) { $fileArray = array(); D("File")->createDir($destPath); $handle = opendir($originalPath); while (false !== ($file = readdir($handle))) // 循环读取目录中的文件名并赋值给$file { if ($file != "." && $file != "..") // 排除当前路径和前一路径 { if (is_dir($originalPath . "/" . $file)) { $this->copyFolder($originalPath . "/" . $file, $destPath . "/" . $file); // 获取子目录下的文件 } else { copy($originalPath . "/" . $file, $destPath . "/" . $file); } } } } else { copy( $originalPath, $destPath ); } }
15、验证EMAIL格式
public function validEmail($email) { if ($email) { if(filter_var($email, FILTER_VALIDATE_EMAIL)){ return TRUE; }else{ return FALSE; } } else { return FALSE; } }
发表评论
-
将博客搬至CSDN
2017-03-28 09:07 740将博客搬至CSDN,尽情期待 -
laravel入門
2017-03-03 16:31 7411 全局安裝 composer global require ... -
导出csv,excel等文件,文件内容错误的问题,需要加上ob_end_clean
2017-03-02 11:54 1635见这个问题: http://stackoverflow.com ... -
facebook graph api从2.6转到2.8的问题处理
2017-02-15 16:30 1378之前一直用facebook 2.6的api,现在想升级到2.8 ... -
php从mysql读取超过200W行的表
2017-01-04 10:09 728需要从一个大表,如user表中读取所有user数据再做整理并導 ... -
一个session失效的伪命题
2016-12-08 18:33 810最近遇到一个问题,一个ajax请求会调用已存在的session ... -
tp5与tp3的区别
2016-11-21 14:33 1615TP5作了很大的改变,更加灵活,没那么臃肿了,加入了一些令人振 ... -
推送消息能不能区分禁止通知和卸载两种类型?
2016-11-18 10:54 1559消息推送ios用了apns,android用的是gcm。推送失 ... -
yaf在命令行模式下出现PHP Fatal error: Class 'Yaf_Application' not found的解决办法
2016-11-11 16:42 2481为了跑个yaf的crontab,执行时报错: PHP Fata ... -
推送emoji表情乱码的解决方法
2016-11-04 17:44 2041推送内容如果包含了emoji表情,需要做以下修改 1 mysq ... -
YAF访问图片等静态资源禁止调用YAF框架的解决办法
2016-10-20 17:55 1723当访问yafpublic 目录下的某个静态资源时,依然会访问y ... -
在线自动协同编辑文本的实现方案
2016-10-14 16:49 2058要实现可以自动在线协同编辑文本的功能。就类似google do ... -
Paypal支付跳转失败的原因及解决办法
2016-09-18 14:27 3734遇到在跳转到paypal支付页面的时候出现502 bad ga ... -
文件格式不是unix导致sed,cat等读取文件后无法正常退出
2016-08-30 14:44 877#!/bin/bash bucket_config=&quo ... -
varnish的使用和PHP清除缓存的技巧
2016-08-11 14:10 1370官網地址 https://www.varnish-cache. ... -
TP在APP_DEBUG=false的情況下,CLI和WEBSITE會共用同一個~runtime.php導致出錯的問題解決辦法
2015-12-14 11:43 897TP若使用了 define('APP_DEBU ... -
node.js获取php curl post数据req.body为空的处理
2015-09-22 11:43 4026node使用了express4和body-parser来解析p ... -
yaf namespace的使用
2015-08-27 11:32 2411yaf支持namespace。在php.ini 中添加 yaf ... -
yaf 添加phpunittest
2015-08-21 11:16 698首先要讓php在cli下支持yaf wamp下打開D:/wam ... -
thinkphp socket to support sso (php socket 不稳定,不建议使用)
2015-08-18 14:06 2080cli code #!/bin/bash filep ...
相关推荐
scratch少儿编程逻辑思维游戏源码-超级马力欧兄弟.zip
scratch少儿编程逻辑思维游戏源码-城堡躲避.zip
内容概要:本文探讨了基于气动力学的导弹姿态控制技术,并详细介绍了其MATLAB仿真方法。文章首先阐述了气动力学的基本概念以及其在导弹设计中的重要性,随后讲解了导弹姿态控制系统的构成,包括传感器、控制器和执行器的功能。接下来,重点介绍了如何利用MATLAB进行导弹飞行过程和姿态控制的仿真,包括建立导弹模型、设定环境参数、编写仿真代码等步骤。最后,通过仿真展示了气动力学在提升导弹飞行稳定性、机动性和作战效能方面的重要作用,并对未来的研究方向进行了展望。 适合人群:航空航天工程领域的研究人员、导弹系统设计师、从事飞行器控制研究的专业人士。 使用场景及目标:适用于希望深入了解导弹姿态控制原理及其仿真的专业人士,旨在提高导弹飞行性能和作战能力。 其他说明:文中提供的MATLAB代码仅为简化的示例,实际应用时需考虑更多复杂的因素和算法。
scratch少儿编程逻辑思维游戏源码-电镀盒子.zip
内容概要:本文详细介绍了DSP28335与STM32F407在电源逆变系统中的锁相环(PLL)程序应用。首先概述了锁相环的基本概念及其在逆变系统中的重要性,然后深入探讨了DSP28335锁相环程序的特点和功能,如正弦波锁定、频率和相位跟踪、全桥逆变等功能。接着阐述了具体的实现步骤,包括系统配置、PLL算法选择、滤波器设计、正弦波生成与输出,最后进行了性能分析,强调了该程序在提高系统性能、稳定性和效率方面的优势。 适合人群:从事电力电子、嵌入式系统开发的技术人员,特别是对锁相环和逆变系统感兴趣的工程师。 使用场景及目标:适用于需要深入了解锁相环在电源逆变系统中应用的研发人员,旨在帮助他们掌握PLL的工作原理、实现方法及其优化技巧,以提高逆变系统的性能和可靠性。 其他说明:文中提供的技术细节和实现方法有助于读者更好地理解和应用锁相环技术,特别是在高频、高精度的逆变场合。
scratch少儿编程逻辑思维游戏源码-Shape Smasher.zip
少儿编程scratch项目源代码文件案例素材-审美乌托邦.zip
少儿编程scratch项目源代码文件案例素材-潜水艇.zip
scratch少儿编程逻辑思维游戏源码-3D忍者.zip
内容概要:本文介绍了基于EMD-ARMA的组合风光出力预测方法,详细阐述了经验模态分解(EMD)和自回归移动平均(ARMA)模型的应用步骤。首先,通过EMD将原始发电数据分解为多个本征模态函数(IMF),然后用ARMA模型对各IMF分量进行建模和预测,最后将预测结果叠加重构,获得最终的风光功率预测值。文中还提供了简化的Python代码示例,帮助读者理解和实现该方法。 适合人群:从事新能源研究和技术开发的专业人士,尤其是对风光发电预测感兴趣的科研人员和工程师。 使用场景及目标:适用于需要提高风光发电预测精度的项目,旨在通过先进的数学模型优化电力调度和资源配置。 其他说明:本文提供的代码示例仅用于教学目的,实际应用中需根据具体情况调整和完善。此外,建议在实践中参考更多专业文献和寻求专家意见以确保预测模型的准确性和可靠性。
scratch少儿编程逻辑思维游戏源码-宝石消消乐.zip
少儿编程scratch项目源代码文件案例素材-染色奔跑.zip
内容概要:本文详细介绍了使用Comsol仿真软件绘制超构表面光子晶体动量空间拓扑荷识别图的方法。首先简述了超构表面光子晶体的基本概念及其重要性,然后逐步讲解了如何在Comsol中建立模型、设置仿真参数并运行仿真,最终生成动量空间拓扑荷识别图。文中还附有简单代码示例,帮助读者更好地理解整个流程。最后对所学内容进行了总结,并展望了未来的研究方向。 适合人群:对光学、物理学以及仿真软件感兴趣的科研人员和技术爱好者。 使用场景及目标:适用于希望深入了解光子在超构表面光子晶体中传播特性的研究人员,旨在提高他们对该领域的认识水平,促进相关科学研究的发展。 阅读建议:由于涉及较多专业术语和复杂概念,在阅读时建议先掌握基本理论知识,并结合实际案例进行练习,以便更好地消化吸收文中内容。
内容概要:本文介绍了一种结合卷积神经网络(CNN)、长短时记忆网络(LSTM)以及SE注意力机制的混合模型用于时序数据分类预测的方法,并提供了具体的MATLAB实现方法。文中详细解释了模型的工作流程,从卷积层的空间特征提取开始,经过SE注意力模块对特征进行加权处理,再到LSTM层的时间序列建模,最终完成分类任务。此外,还讨论了一些优化技巧,如数据预处理、动态学习率设置、特征压缩等,以提高模型性能。 适合人群:有一定机器学习基础的研究人员和技术开发者,特别是那些从事医疗健康、工业监控等领域时序数据分析工作的专业人士。 使用场景及目标:适用于需要高效处理复杂时序数据的应用场合,如医疗诊断、工业设备状态监测等。主要目的是为了改善传统单一模型在特征利用方面的局限性,提供一种更加精准有效的解决方案。 其他说明:文中提供的代码片段可以直接应用于实际项目中,只需根据具体情况调整参数配置和数据格式。同时提醒使用者关注数据预处理步骤,确保输入数据的质量和一致性对于获得良好结果至关重要。
scratch少儿编程逻辑思维游戏源码-超级摇摆小猫.zip
scratch少儿编程逻辑思维游戏源码-奔跑吧!糖豆人.zip
内容概要:本文档详细介绍了旋翼无人机(UAV)的动力学建模方法,重点在于六自由度模型的构建。首先定义了一个简化的四旋翼无人机动力学类,涵盖了质量、惯性矩阵、重力加速度等基本物理参数,并实现了推力矩阵的计算,用于将电机转速转化为推力和力矩。接着讨论了姿态更新过程中四元数的作用,提供了四元数更新的具体实现方式,强调了归一化操作的重要性。此外,还探讨了传感器噪声对飞行控制系统的影响,提出了一个较为真实的陀螺仪噪声模型,考虑到了随机游走特性和低通滤波效果。最后给出了一个简易的数值积分循环示例,展示了如何利用上述模型进行仿真。 适用人群:从事无人机研究、开发的技术人员,尤其是对飞行器动力学建模感兴趣的工程师。 使用场景及目标:适用于希望深入了解无人机内部工作原理的研究者和技术开发者,旨在帮助他们掌握从理论到实践的关键步骤,包括但不限于动力学建模、姿态控制、传感器误差补偿等方面的知识。 其他说明:文中提供的代码片段均为简化版本,实际应用中可根据具体需求调整参数设置和算法细节。同时推荐使用专业数学库来提高代码效率和准确性。
少儿编程scratch项目源代码文件案例素材-女巫.zip
内容概要:本文详细介绍了基于FPGA的数据采集系统,重点讨论了如何将其与多种关键技术集成,以提升数据采集和处理的效率与稳定性。首先,阐述了FPGA数据采集系统的特性及其重要性。接着,分别介绍了RTL8211千兆以太网控制器的应用,用于实现数据的快速传输;SD卡存储解决方案,确保数据的持久化保存;AD7606数模转换技术,保障信号的精准转换;最后,讲解了串口通信软件程序的设计与实现,促进不同设备间的通信。通过这些技术的集成,实现了对各类信号的实时采集、处理和传输。 适合人群:从事嵌入式系统开发的技术人员,尤其是对FPGA数据采集系统感兴趣的工程师和技术爱好者。 使用场景及目标:适用于需要高性能数据采集和处理的场合,如工业自动化、科研实验、环境监测等领域。目标是帮助技术人员理解和掌握如何利用FPGA搭建高效的多技术集成数据采集系统。 其他说明:文中不仅提供了理论介绍,还涉及实际应用案例和技术细节,有助于读者深入理解各组件的工作原理及其协同工作的机制。
Qt上位机利用libharu库生成pdf,添加附件,实际就是demo中的attach例程