PHP 判断文件是否为图片的方法

在网页设计中,如果需要图片,我们通常拿到的是一个图片的文件名。仅仅通过文件名是无法判断该文件是否是一个图片文件的。或许有的人以为通过后缀名就可以判断,别忘了文件的后缀名是可以随便改动的。更何况,在 Linux 系统下是不以后缀来区分文件格式的。如果天真的以为通过后缀名就能区分图片,那可能出现错误时,你连错误在哪儿都不知道。比如有一个讨厌的人把一个文本文件改成 background.jpg,然后给你用,你可能只会简单的认为这个图片被损坏了,万万没想到它竟然仅仅是一个文本文件。 为了避免一些不必要的问题出现,在拿到一个图片时,应该正确的判断该文件是否真的一个图片文件。这里总结了三种判断方法...

阅读更多

Sublime Text 常用快捷键整理

插入 Ctrl+Enter 在下一行插入新行。即使光标不在行尾,也能快速向下插入一行。 Ctrl+Shift+Enter 在上一行插入新行。即使光标不在行首,也能快速向上插入一行。 Ctrl+Shift+D 复制光标所在整行,插入到下一行。即先将光标所在行复制,然后再插入到光标所在的下一行。 编辑 Ctrl+J 合并选中的多行代码为一行。例如:将多行格式的CSS属性合并为一行。 Ctrl+Shift+V 粘贴并保持缩进。 Alt+Shift+W 使用标签包裹一行,Web开发利器。 Ctrl+Shift+; 移除与光标所在位置相关的...

阅读更多

artDialog 对话框组件使用简介

artDialog 是一个轻巧且高度兼容的 javascript 对话框组件,可让你的网页交互拥有桌面软件般的用户体验。其支持锁定屏幕(遮罩)、模拟 alert 和 confirm、多窗口弹出、静止定位、支持 Ese 键关闭对话框、定时关闭、自定义位置、拖动、鼠标调节窗口大小、换肤等。其项目主页为:http://aui.github.io/artDialog/. 优点 兼容主流浏览器 支持IE6和IE6+, Firefox, chrome, Opera, Safari 自适应内容 无需预设高宽, 对话框自适应消息内容的大小 (包括按钮),并且支持消息框大小拖动调节 ...

阅读更多

PHP向客户端广播信息

在网络中数据传播分为:Unicast(单播) , Multicast(多播或者组播) 和 Broadcast(广播)。广播和多播仅应用于UDP,它们对需将报文同时传往多个接收者的应用来说十分重要。而 TCP 是一个面向连接的协议,它意味着分别运行于两主机(由IP地址确定)内的两进程(由端口号确定)间存在一条连接。广播地址在默认情况下是不能让路由器转发到别的接口的,广播不能穿越路由器。广播有以下几种形式: 受限的广播: 受限的广播地址是255.255.255.255,该地址用于主机配置过程中IP数据报的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也...

阅读更多

在 Ubuntu 下直接将二进制文件制作成 rpm 包

大多数 rpm 包的制作都是用源码包来编译构建,而我的需求是直接将可运行的二进制文件制作成 rpm 包,而且是在 Ubuntu 系统上。网上的大部分资料都是源码来制作 rpm 包,且比较零乱、不完整。rpm 制作的重要一步就是编写 spec 文件,在该文件中定义了如何编译源码,然后又如何打包的过程。通过大量的资料查阅和分析,最后发现在 spec 文件中把 源码编译的部分删掉便可以直接将二进制文件制作成 rpm 包。 安装 rpm 工具 制作 rpm 包需要用到 rpmbuild 工具。在 ubuntu 上,该工具包含在 rpm 包中,可以直接从源里安装: sudo apt-get...

阅读更多

Windows 下 CodeBlocks 编译记录

应工作需要在 Windows 上编译 CodeBlocks,在此做下编译记录。 源码下载 1、wxWidgets CodeBlocks 是依赖于 wxWidgets 的图形库而构建的,wxWidgets是一个开源的跨平台的C++构架库(framework),它可以提供GUI(图形用户界面)和其它工具。所以我们首先要下载 wx 的源码: http://www.codeblocks.org/downloads/source 2、CodeBlocks 下载 CodeBlocks 源码:http://www.codeblocks.org/downloads/source 3、Code...

阅读更多

Elementary OS 使用体验

Elementary OS 号称是最美的 linux 系统(后边的内容将简称EOS),于是打算体验一下。我的安装方式是双系统安装,安装 Windows 和 Linux 并存。安装到最后,出现了一个“GRUB 安装”安装失败的错误,尝试多次后发现联网安装能成功。这就证明系统镜像里没有包含 grub,需要联网下载,或许 EOS 的本意是不支持双系统安装的。不过 EOS 本身是很轻巧纯净的,这一点我比较喜欢,系统没有自带太多的软件,只安装几款自己独特的软件,例如 Midori, Scrarch,日历等。 安装完后的第一感觉还是有些失望的。界面做得还算可以吧,但个人觉得不是很优雅。系统有些不稳...

阅读更多

Python 迭代器、生成器和列表解析

迭代器 迭代器在 Python 2.2 版本中被加入, 它为类序列对象提供了一个类序列的接口。 Python 的迭代无缝地支持序列对象, 而且它还允许迭代非序列类型, 包括用户定义的对象。即迭代器可以迭代不是序列但表现出序列行为的对象, 例如字典的 key , 一个文件的行, 等等。迭代器有以下特性: 提供了可扩展的迭代器接口. 对列表迭代带来了性能上的增强. 在字典迭代中性能提升. 创建真正的迭代接口, 而不是原来的随机对象访问. 与所有已经存在的用户定义的类以及扩展的模拟序列和映射的对象向后兼容 迭代非序列集合(例如映射和文件)时, 可以创建更简洁可读的代码. 迭代器对象即...

阅读更多