首页 › Category Archives › Php

[PHP] – 压缩与解压Zip(PHPZip类)

PHPZip类来源:网络

visitFile()函数来源:http://topic.csdn.net/u/20071225/11/e6a8db84-df02-4622-987b-2a4ed4a5eef0.html (第14楼)

注:修改为可遍历子文件夹(替换遍历方法为visitFile());

添加GetZipComment()方法;

加上用法说明(注释部分)。 继续阅读 »

var_export 与 var_dump的不同

问题发现
在跟踪yratings_get_targets的时候,
error_log(var_export(yblog_mspconfiginit(“ratings”),true));
老是打印出yblog_mspconfiginit(“ratings”)的返回是NULL
导致我以为是无法建立和DB的连接,走错路了一天。
最后才发现,这是var_export和var_dump的区别之一
问题原因
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值
但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL
实例
$res = yblog_mspconfiginit(“ratings”);
var_dump($res);
var_export($res);
/*
结果:
resource(1) of type (yahoo_yblog)
NULL
*/
再比如:
$res = fopen(‘status.html’, ‘r’);
var_dump($res);
var_export($res);
/*
结果:
resource(2) of type (stream)
NULL
*/

问题发现
在跟踪yratings_get_targets的时候, error_log(var_export(yblog_mspconfiginit(“ratings”),true));  老是打印出yblog_mspconfiginit(“ratings”)的返回是NULL导致我以为是无法建立和DB的连接,走错路了一天。最后才发现,这是var_export和var_dump的区别之一 问题原因
var_export必须返回合法的php代码, 也就是说,var_export返回的代码,可以直接当作php代码赋值个一个变量。 而这个变量就会取得和被var_export一样的类型的值但是, 当变量类型为resource的时候, 是无法简单copy复制的,所以, 当var_export的变量是resource类型时, var_export会返回NULL实例
$res = yblog_mspconfiginit(“ratings”);var_dump($res);var_export($res);
/*结果:resource(1) of type (yahoo_yblog)NULL*/ 再比如: $res = fopen(‘status.html’, ‘r’);var_dump($res);var_export($res);
/*结果:resource(2) of type (stream)NULL*/

最新(原创) Intel面试题

去英特尔面试,被无声无息了。据说是headcount取消了,呜呜。
发出上机题,供广大程序兄弟参考。
题目(上机,一个小时时间):
输入一串数字,如:3 3 1 2 3 4 5 6 7 8 9
第一个数字表示行数,第二个表示列数,后面的表示矩阵里的值。生成的矩阵如下:
1 2 3
4 5 6
7 8 9
然后按顺时针方向螺旋输出,在上面的例子中,顺序是:1 2 3 6 9 8 7 4 5
要求输入输出如下:
Input:
3 3 1 2 3 4 5 6 7 8 9
1 3 1 2 3
Output:
1 2 3 6 9 8 7 4 5
1 2 3
说实话比较简单,也没规定用什么语言,我用python写的,45分钟的样子:

import os, sys

def buildMatrix (inputList):
# print rowNum, colNum
inputListTrim = inputList[2:]
# print inputListTrim
inputMatrix = []
tmpCount = 0

for tmpRowNum in range(rowNum):
tmpList = []
for tmpColNum in range(colNum):
# print tmpRowNum, tmpColNum, tmpCount
tmpList.append(inputListTrim[tmpCount])
tmpCount += 1
inputMatrix.append(tmpList)
return inputMatrix

def outputMatrix (inputMatrix):
inputMatrixBuf = inputMatrix
outputList = []
while (len(inputMatrixBuf) > 0):
tmpList = []
tmpList = [tmpStr for tmpStr in inputMatrixBuf[0]]
inputMatrixBuf = inputMatrixBuf[1:]
outputList += tmpList

if (len(inputMatrixBuf) == 0):
break
tmpList = []
for tmpCount in range(len(inputMatrixBuf)):
tmpList.append(inputMatrixBuf[tmpCount].pop())
outputList += tmpList

if (len(inputMatrixBuf) == 0):
break
tmpList = []
tmpListBuf = []
tmpListBuf = reversed(inputMatrixBuf[-1])
tmpList = [tmpStr for tmpStr in tmpListBuf]
inputMatrixBuf = inputMatrixBuf[:-1]
outputList += tmpList

if (len(inputMatrixBuf) == 0):
break
tmpList = []
for tmpCount in range((len(inputMatrixBuf) – 1), -1, -1):
tmpList.append(inputMatrixBuf[tmpCount][0])
inputMatrixBuf[tmpCount] = inputMatrixBuf[tmpCount][1:]
outputList += tmpList

# print inputMatrixBuf
return outputList

inputListStr = raw_input(“Input:\n”)
inputList = inputListStr.split()
#print inputList

if (len(inputList) < 2):
sys.exit(“Could not got row & col numbers!”)

rowNum = int(inputList[0])
colNum = int(inputList[1])

if ((rowNum * colNum) != (len(inputList) – 2)):
sys.exit(“Wrong Arguments Number!”)

inputMatrix = buildMatrix(inputList)
#print inputMatrix
outputList = outputMatrix(inputMatrix)

print “output:”
print ” “.join(outputList)

WordPress插件Js 技巧:全站简繁转换简体转繁体 Js下载

大家基本上都是用中文写博客,我们也知道国内用的是简体中文,而港台澳和其他海外的华人用的是正体中文,也就是我们所说的繁体字。严格地说简体中文是繁体中文的阉割版,因为它是在繁体中文的基础上简化而来的。细心一点分析我们的统计就会发现,我们的读者不仅仅限于国内朋友,还有很多来自港台澳和国外的华人朋友也通过各种渠道来到我们的博客。
简体字经过几十年的发展,已经深入到国内的每一个行业。但是很明显,简体字对于这些朋友来说很陌生,比较形象的说法是“缺胳膊少腿”。
上网的时候我们会发现很多网站都有繁体版本,通过导航栏上的一个按钮就可以把网页上的文字从简体中文变成繁体中文。很多主机商也提供类似于“简繁通”之类的产品,当然,是需要收费的。
那么,怎么让我们的博客不用花钱也能支持简繁转换呢?
我们看到国内的很多博客用户都在自己的主页上添加了Google的翻译挂件,通过简单的设置让Google来为我们把网页从简体中文翻译成繁体中文或英语。而我介绍的这个简繁转换,是通过js的方式实现的。下面我就以WordPress为例说明一下:

大家基本上都是用中文写博客,我们也知道国内用的是简体中文,而港台澳和其他海外的华人用的是正体中文,也就是我们所说的繁体字。严格地说简体中文是繁体中文的阉割版,因为它是在繁体中文的基础上简化而来的。细心一点分析我们的统计就会发现,我们的读者不仅仅限于国内朋友,还有很多来自港台澳和国外的华人朋友也通过各种渠道来到我们的博客。简体字经过几十年的发展,已经深入到国内的每一个行业。但是很明显,简体字对于这些朋友来说很陌生,比较形象的说法是“缺胳膊少腿”。
上网的时候我们会发现很多网站都有繁体版本,通过导航栏上的一个按钮就可以把网页上的文字从简体中文变成繁体中文。很多主机商也提供类似于“简繁通”之类的产品,当然,是需要收费的。那么,怎么让我们的博客不用花钱也能支持简繁转换呢?
我们看到国内的很多博客用户都在自己的主页上添加了Google的翻译挂件,通过简单的设置让Google来为我们把网页从简体中文翻译成繁体中文或英语。而我介绍的这个简繁转换,是通过js的方式实现的。下面我就以WordPress为例说明一下:
继续阅读 »

linux下的ImageMagick安装

ImageMagick (TM) 是一个免费的创建、编辑、合成图片的软件。它可以读取、转换、写入多种格式的图片。图片切割、颜色替换、各种效果的应用,图片的旋转、组合,文本,直线,多边形,椭圆,曲线,附加到图片伸展旋转。ImageMagick是免费软件:全部源码开放,可以自由使用,复制,修改,发布。它遵守GPL许可协议。它可以运行于大多数的操作系统。ImageMagick的大多数功能的使用都来源于命令行工具。通常来说,它可以支持以下程序语言: Perl, C, C++, Python, PHP, Ruby, Java;现成的ImageMagick接口(PerlMagick, Magick++, PythonMagick, MagickWand for PHP, RubyMagick, and JMagick)是可利用的。这使得自动的动态的修改创建图片变为可能。ImageMagick支持至少90种图片格式: A, ART, AVI, AVS, B, BIE, BMP, BMP2, BMP3, C, CACHE, CAPTION, CIN, CIP, CLIP, CLIPBOARD, CMYK, CMYKA, CUR, CUT, DCM, DCX, DNG, DOT, DPS, DPX, EMF, EPDF, EPI, EPS, EPS2, EPS3, EPSF, EPSI, EPT, EPT2, EPT3, FAX, FITS, FPX,FRACTAL, G, G3, GIF, GIF87, GRADIENT, GRAY, HDF, HISTOGRAM, HTM, HTML, ICB, ICO, ICON, JBG, JBIG, JNG, JP2, JPC, JPEG, JPG, JPX, K, LABEL, M, M2V, MAP, MAT, MATTE, MIFF, MNG, MONO, MPC, MPEG, MPG, MSL, MTV, MVG, NULL, O, OTB, P7, PAL, PALM, PATTERN, PBM, PCD, PCDS, PCL, PCT, PCX, PDB, PDF, PFA, PFB, PGM, PGX, PICON, PICT, PIX, PJPEG, PLASMA, PNG, PNG24, PNG32, PNG8, PNM, PPM, PREVIEW, PS, PS2, PS3, PSD, PTIF, PWP, R, RAS, RGB, RGBA, RGBO, RLA, RLE, SCR, SCT, SFW, SGI, SHTML, STEGANO, SUN, SVG, SVGZ, TEXT, TGA, TIF, TIFF, TILE, TIM, TTC, TTF, TXT, UIL, UYVY, VDA, VICAR, VID, VIFF, VST, WBMP, WMF, WMFWIN32, WMZ, WPG, X, XBM, XC, XCF, XPM, XV, XWD, Y, YCbCr, YCbCrA, YUV

从官方不好下载,提供 sourceforge的下载地址: imagemagick.sourceforge.net

然后下载下来解压缩, 继续阅读 »

Discuz 完美解决DZ论坛整合 登录注册登出注销用户数据

说明:自己有网站(SNS),以下都用SNS代表自己网站,也有自己单独的会员系统,但想在自己网站上整合进DZ论坛时,遇到了注册、登陆、退出三 要素的同步处理问题。
例如在我自己网站上登陆了,到了论坛却还要登陆一次,然后,两边的登陆名字也可能并不相同,正是因为此,所以才有了下面这篇 文章。

资源:
UCenter_1.0.0_SC_UTF8     安装DZ论坛,必须先安装这个用户控制中心
Discuz_6.1.0_SC_UTF8      DZ论坛,注意与上面的UCenter字符编码要一致 继续阅读 »

Discuz! X1版博彩竞猜插件 微微族菠菜系统 使用教程 下载地址

最新版查看:

请到 菠菜系统 官方板块 查看

http://www.vivizu.com/bet

Discuz!插件
插件名称 微微族菠菜系统
适用版本 Discuz! X1
语言编码 UTF8
插件作者 Wing 周威兵
版权所属 微微族
支持网站 http://www.vivizu.com
插件简介 能方便的开出博彩、参加博彩、竞猜排行 天地神榜
===============================================
程序名称:微微族 菠菜系统
程序作者: Wing
技术支持:http://www.vivizu.com
1、本程序作者为 Wing ? 博客http://www.vivizu.com/blog 。
2、本程序完全开源并且个人完全免费使用,不得用于商业使用,如需进行商业行为请与作者联系获得商业许可。
3、本程序尽可能的保证程序的安全和效率,但也许存在BUG等,如果因为程序不当造成的相关损失作者不承担任何责任,请考虑清楚再安装该插件!
4、对于程序本身的问题作者会及时的给予修正,但不对任何第三方修改版本进行技术支持和升级。
———— ? ? ? ++ ? ? ? ————
I ?安装说明
1. 解压缩文件,上传“vivizu_bet”文件夹到论坛目录下的 source/plugin 目录下
2. 用论坛管理员身进入管理中心 =》 插件 =》 安装新插件, 就可以看到新插件列表中出现了 vivizu_bet,点击后面的安装。
3. 完成。
II 使用说明
进入插件菠菜系统
系统设置 =》 ?更改系统的打开和关闭、 设置金钱的字段、 设置菠菜官
III 其他
1. 有任何建议或者意见,请联系原作者 Wing 周威兵 ,或者至微微族网站 www.vivizu.com留言,谢谢。

Discuz!插件插件名称 微微族菠菜系统适用版本 Discuz! X1语言编码 UTF8?插件作者 Wing 周威兵版权所属 微微族支持网站 http://www.vivizu.com插件简介 能方便的开出博彩、参加博彩、竞猜排行 天地神榜===============================================程序名称:微微族 菠菜系统程序作者: Wing ?技术支持:http://www.vivizu.com
1、本程序作者为 Wing ? 博客http://www.vivizu.com/blog 。2、本程序完全开源并且个人完全免费使用,不得用于商业使用,如需进行商业行为请与作者联系获得商业许可。3、本程序尽可能的保证程序的安全和效率,但也许存在BUG等,如果因为程序不当造成的相关损失作者不承担任何责任,请考虑清楚再安装该插件!4、对于程序本身的问题作者会及时的给予修正,但不对任何第三方修改版本进行技术支持和升级。

———— ? ? ? ++ ? ? ? ————

I ?安装说明
1. 解压缩文件,上传“vivizu_bet”文件夹到论坛目录下的 source/plugin 目录下
2. 用论坛管理员身进入管理中心 =》 插件 =》 安装新插件, 就可以看到新插件列表中出现了 vivizu_bet,点击后面的安装。
3. 完成。
II 使用说明?? ???? ? ? 进入插件菠菜系统?? ? ? ??? ? ? ?系统设置 =》 ?更改系统的打开和关闭、 设置金钱的字段、 设置菠菜官

III 其他
1. 有任何建议或者意见,请联系原作者 Wing 周威兵 ,或者至微微族网站 www.vivizu.com留言,谢谢。

使用教程:

菠菜采用的 赔率计算方式为浮动赔率,赔率根据水友们的下注总额随时浮动。结算时,按照最后的赔率为准。

菠菜有明灯排行榜: 明灯排行榜分别按照胜率、胜场、败率,将排行前20位的明灯收录进天榜、地榜、神榜,要注意的是只20场胜利以上的会员才能进入天、地榜,20个场次的下注的会员才能进入神榜哦

如何进行菠菜:
1.菠菜位于屏幕右上方的插件中
1.jpg

2.关于菠菜界面的介绍
5.jpg

 

PHP 中的数据库缓存原理

本文章作者主要是用到 php 里面的数据库缓存,php缓存,cache_write,var_export功能对数据进行缓存操作了,觉得写得很不错。

如果后台应用接收到浏览器端的查询请求后,每次都与数据库连接读取数据,势必增加数据库的负担。而往往有大量的请求是重复的,我们可以把这些重复的信息采用缓存技术保存下来,重复使用,这样,在某些情况下可以大大提高程序的性能。

一、缓存函数

cache_write函数接受$string参数,写到$file文件中。注意var_export函数,作用是:

此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。

这些参数可以是数组或常量,而这些数组或常量通常为从数据库中取出的记录,或非序列化(unserialize)对象后得到的数据。这些都可以缓存到本地的文本文件中。

cache_write函数很简单,需要读取数据时,先判断缓存是否存在,存在的话就不去连接数据库取数据,而是直接读出缓存的文本文件,直接产生了数组或常量等类型的数据,可以直接使用。 继续阅读 »

PHP Page Cache 页面缓存类

一个PHP Page Cache 的页面缓存类,代码结构还不错,大家有需要可以拿来用。

继续阅读 »

Page caching in PHP

Some web sites and applications have complex ways of parsing and manipulating data before the information is presented to the visitor or user. This article addresses the need for page caching, a way of processing the information once and caching the page’s content for any subsequent views. I’m writing this article in view of providing page caching for simple CMSs (Content Management Systems). The key points for processing page caching are as follows:

  1. If there is already a cache file, present it. Else…
  2. Start PHP’s output buffer
  3. Process your business logic and present the XHTML
  4. Store the buffer as a cache file
  5. Output the contents of the buffer to the screen

So, with all of that said and done let’s look at the code to perform this functionality: 继续阅读 »