Archive for php
Microsoft Office 2007/2003 MIME信息大全
发表于 2012-05-14 22:51 : 评论 ( 没有评论 )
What are the Microsoft Office MIME Types? MIME信息一般用于文件上传时检测文件类型,也可用于下载附件时,正确显示文件的类型,再多一些的话,在邮件发送等多种涉及到文件传输的场合都需要用到。 我收集了一下Office系列的文件MIME,同时也把国内比较有名的WPS格式也加上了。 Ext MIME Type .doc application/msword .dot application/msword .docx application/vnd.openxmlformats-officedocument.wordprocessingml.document .dotx application/vnd.openxmlformats-officedocument.wordprocessingml.template .docm application/vnd.ms-word.document.macroEnabled.12 .dotm application/vnd.ms-word.template.macroEnabled.12 .xls application/vnd.ms-excel .xlt application/vnd.ms-excel .xla application/vnd.ms-excel .xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet .xltx application/vnd.openxmlformats-officedocument.spreadsheetml.template .xlsm application/vnd.ms-excel.sheet.macroEnabled.12 .xltm application/vnd.ms-excel.template.macroEnabled.12 .xlam application/vnd.ms-excel.addin.macroEnabled.12 .xlsb application/vnd.ms-excel.sheet.binary.macroEnabled.12 .ppt application/vnd.ms-powerpoint .pot application/vnd.ms-powerpoint .pps application/vnd.ms-powerpoint .ppa application/vnd.ms-powerpoint .pptx application/vnd.openxmlformats-officedocument.presentationml.presentation .potx application/vnd.openxmlformats-officedocument.presentationml.template .ppsx [...]
你所不知道的UTF-8编码
发表于 2012-04-23 18:10 : 评论 ( 没有评论 )
UTF-8 使用一至四个字节为每个字符编码。128 个 ASCII 字符(Unicode 范围由 U+0000 至 U+007F)只需一个字节,带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语、希伯来文、阿拉伯文、叙利亚文及马尔代夫语(Unicode 范围由 U+0080 至 U+07FF)需要二个字节,其他基本多文种平面(BMP)中的字符(CJK属于此类-Qieqie注)使用三个字节,其他 Unicode 辅助平面的字符使用四字节编码。 在UTF-8编码集中,每个汉字使用 3 个字符表示,GB编码中,每个汉字使用 2 个字符表示.
PHP 直接在共享内存中存储数据集
发表于 2012-04-12 13:53 : 评论 ( 没有评论 )
共享内存是一种在相同机器中的应用程序之间交换数据的有效方式。一个进程可创建一个可供其他进程访问的内存段,只要它分配了正确的权限。每个内存段拥有一个惟一的 ID(称为 shmid),这个 ID 指向一个物理内存区域,其他进程可在该区域操作它。创建并提供了合适的权限之后,同一台机器中的其他进程就可以操作这些内存段:读取、写入和删除。 这表明使用 C 语言编写的应用程序可与使用其他语言(比如 Java? 或 PHP)编写的应用程序共享信息。它们都可以共享信息,只要它们可访问和理解该信息。共享内存在针对大部分语言的实现中得到了广泛使用,所以访问应该不是问题。要理解信息,我们可以使用一种标准格式,比如 XML 或 JSON。 共享内存的使用是一种在进程之间交换数据的快速方法,主要因为在创建内存段之后传递数据,不会涉及内核。这种方法常常称为进程间通信 (IPC)。其他 IPC 方法包括管道、消息队列、RPC 和套接字。当使用需要彼此通信的应用程序的生态系统时,这种在应用程序之间快速、可靠地交换数据的能力非常有用。取决于生态系统的大小,使用数据库在应用程序之间交换信息的常用方法常常会导致查询缓慢,甚至 I/O 阻塞。使用共享内存,没有 I/O 会减缓开发人员的进度。 本文的提议非常简单,学习如何使用 PHP 创建和操作共享内存段,使用它们存储可供其他应用程序使用的数据集。即使没有使用共享内存交换数据的计划,它本身也在许多好处,因为它使应用程序能够远离 I/O 问题。将数据集直接存储在内存中具有诸多优势,从 Web 服务数据缓存到会话共享。它是一个非常有用的概念,每个 PHP 开发人员都应该知道。 共享内存和 PHP PHP 拥有丰富的可用扩展,共享内存也一样。使用一些共享的函数,无需安装任何扩展,开发人员就能够轻松操作内存段。 回页首创建内存段 共享内存函数类似于文件操作函数,但无需处理一个流,您将处理一个共享内存访问 ID。第一个示例就是 shmop_open 函数,它允许您打开一个现有的内存段或创建一个新内存段。此函数非常类似于经典的 fopen 函数,后者打开用于文件操作的流,返回一个资源供其他希望读取或写入该打开的流的函数使用。让我们看看清单 1 中的 shmop_open。 清单 1. shmop_open 函数 该函数中出现的第一个事物是系统 ID 参数。这是标识系统中的共享内存段的数字。第二个参数是访问模式,它非常类似于 fopen 函数的访问模式。您可以在 [...]
[实例]使用PHP建立SVN的远程钩子,使用exec命令自动更新SVN的代码
发表于 2012-04-12 11:59 : 评论 ( 没有评论 )
本操作需要使用到php执行sudo命令的权限,相关设置可以参考: apache/Nginx下的PHP/Ruby执行sudo权限的系统命令 通过Svn的钩子功能,可以在我们执行SVN操作时,同时自动执行一些操作,比较常见的操作有: 1,本地更新并提交代码时,在测试环境或者线上环境同时将代码更新到最新版 2,在更新Svn时,如果有数据库相关的操作,可以同时将SQL发给远程钩子程序执行相关的SQL 这个实例是我们项目组用到的一个片段,实现在本地开发代码测试通过以后,往线上提交SVN时,自动将代码更新到线上,或者执行导出打包的工作 这里需要将apache加入sudoer组 为此,修改sudo配置文件,直接键如visudo命令编辑配置文件: 1. 注释Defaults requiretty Defaults requiretty修改为 #Defaults requiretty, 表示不需要控制终端。 否则会出现sudo: sorry, you must have a tty to run sudo 2. 增加行 Defaults visiblepw 否则会出现 sudo: no tty present and no askpass program specified 3. 赋予apache用户执行svn权限 如,增加行:apache ALL=(ALL) NOPASSWD: /usr/bin/svn 注:NOPASSWD可以使在命令执行时不需要交互输入apache用户的密码 最后一步,即在SVN钩子中添加提交SVN时,自动访问远程链接“http://www.4wei.cn/yoursvnfile.php”
CENTOS如何安装PHP 5.3(How to install PHP 5.3 on CentOS)
发表于 2012-03-26 23:32 : 评论 ( 没有评论 )
CentOS重装YUM,YUM安装PHP升级到PHP5.2 PHP5.2真的很老了,真的真的很老了,一直也在使用5.2~CENTOS不支持php5.3,但强大的社区贡献是支持的,嘎嘎~~ Let's talk about PHP for a moment. In particular, let's talk about PHP's release history. PHP 5.1 was released in 2005. PHP 5.2 was released almost exactly a year later, in 2006. PHP 5.3, on the other hand, took four more years -- until 2009 -- to be released. Now, there's a reason [...]
Discuz!X2 用户改名程序
发表于 2012-03-22 17:10 : 评论 ( 没有评论 )
Discuz!X2 修改用户名小工具,可以安全的修改论坛和UCENTER中的关联信息。 在网上找了一些插件,发现没有对UCENTER数据库做检查,也没有对新的用户名做检查,容易产生错误。
火车采集器 Discuz!X 2.5 采集发布接口来咯,你懂的。
发表于 2012-03-10 00:55 : 评论 ( 2 条评论 )
今天是个好日子~ 1,12点刚过,媳妇儿告诉我,今天是我的生日。 2,DX2.5的采集接口也完成了,请大家参与测试,与bug反馈和建议请大家反馈一下。如果有采纳的功能建议,会给送出几个接口授权以示感谢。 2.5的接口还没有正式发布,所在授权中心还不能购买和下载,但可以在线测试的。 http://my.4wei.cn/bbs/locoy.php 跟大家分享一下这段时间的技术收获: 1,开发了几个基于Ucenter的项目,不得不说,Ucenter是个好东西; 2,Discuz!X2.5又是一个改了一些内核的N不像; 3,市场上各类接口层出不穷,各类群发软件丛生,一时间都觉得我做的一系列接口也到了发展后期了。晚上在群里问了一下,结果发现还是没有其它比较有力竞争产品。从接口的功能,附件和数据的真实效果,再到开发者的负责态度,接口产品的更新速度,俺目前还是走在最前面; 4,掐指一算,Discuz系列的接口,从6.0升级到X2.5已经多少年了,我都快记不清了... 接口的正式版应该是在Discuz!x2.5的正式版发布以后同步提供免费版和收费版,有升级需求的老用户依然在授权中心下载新的接口,升级只需要覆盖新的接口,火车采集器和发布模块均不需要改动。
PHP Warning: Module 'json' already loaded in Unknown on line 0
发表于 2012-02-14 10:45 : 评论 ( 1 条评论 )
某台服务器上跑着php 5.3.8,线上服务运行正常。 某天拆分php错误日志时,发现其中有一段连续的错误信息。 [14-Feb-2012 09:21:01] PHP Warning: Module 'json' already loaded in Unknown on line 0 经过查询,定位原因为从低版本php升级到高版本php时,json模块重复载入了。 于是在php.ini将Json组件注释掉,问题解决。后续的php安装时,就不再需要编译Json模块了。
