转自zendchina,可查看原文,之所以转载,是因为网上的各种资料都不太全,本文很全面。本人在该问题上也遇到很多困难,终于从本文获得启发。希望遇到同样问题的朋友们能尽快解决该问题。同时声明:网传的windows下不能使用zend调试是错的,很难用也是错的,只是不得法而已,不要以讹传讹。我自己尝试的辛苦,希望朋友们能少走些弯路。
下载xdebug,看清版本,很重要,这里使用php_xdebug-2.0.5-5.2.dll,符件中有;
必须以Zend方式加载,见php.ini中配置。配置D:\EasyPHP\PHP\php.ini,先把optimization注释掉使用";"
如下:
;[Zend]
;zend_optimizer.optimization_level=1023
;zend_extension_ts="../Zend/ZendExtensionManager.dll"
;zend_extension_manager.optimizer_ts="../Zend/Optimizer-3.3.0"
;zend_extension_ts="D:/EasyPHP/PHP/ext/ZendDebugger.dll"
;zend_debugger.allow_hosts=127.0.0.1/32
;zend_debugger.expose_remotely=always
;extension=php_xdebug-2.0.5-5.2.dll
[Xdebug]
zend_extension_ts=D:/EasyPHP/PHP/ext/php_xdebug-2.0.5-5.2.dll
xdebug.profiler_enable=on
xdebug.trace_output_dir="D:/EasyPHP/xdebug"
xdebug.profiler_output_dir="D:/EasyPHP/xdebug"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=19000
xdebug.remote_handler="dbgp"
请修改端口为19000防止端口被占用,修改web browse,如下图
![1_201105271110431yKQ8[1] 1_201105271110431yKQ8[1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281252581880.jpg)
不要使用FF会报下面的错误:
waiting for XDebug seession...就不动了,选择IE正常
然后再按下面配置:
另外:
Zend Studio for Eclipse开启XDebug的方法:
- 6.0.0\plugins\com.zend.php_6.0.0.v20080107\plugin_customization.ini
将这行org.eclipse.ui.workbench/UIActivities.com.zend.php.debug.ui.XDebugActivity=false
改成true,保存后,重新启动Zend Studio 7,php debug里面就可以选择Xdebug进行调试了。
![1_201105271110433rX2W[1] 1_201105271110433rX2W[1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281253274460.jpg)
![1_201105271110434SBhM[1] 1_201105271110434SBhM[1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281253448370.jpg)
选择要debugger的web页面
![1_201105271110436fT64[1] 1_201105271110436fT64[1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281254162120.jpg)
![1_201105271110436fT64[1][1] 1_201105271110436fT64[1][1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/20111228125419465.jpg)
![1_201105271110436fT64[1][2] 1_201105271110436fT64[1][2]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281254252554.jpg)
![1_201105271110437mM47[1] 1_201105271110437mM47[1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281254307509.jpg)
![1_201105271110437mM47[1][1] 1_201105271110437mM47[1][1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281254355247.jpg)
![1_201105271110437mM47[1][2] 1_201105271110437mM47[1][2]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/20111228125445664.jpg)
![1_2011052711104380406[1] 1_2011052711104380406[1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281255024498.jpg)
![1_2011052711104380406[1][1] 1_2011052711104380406[1][1]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281255087012.jpg)
![1_2011052711104380406[1][2] 1_2011052711104380406[1][2]](http://images.cnblogs.com/cnblogs_com/zsz417/201112/201112281255137083.jpg)
另外WinCacheGrind的使用参考:http://hi.baidu.com/lostdays/blog/item/c2ef51a920c62ff81f17a2f4.html
我的phpinfo信息如下,方便出现问题对比版本:
PHP Version 5.2.5
System
Windows NT WV 5.1 build 2600
Build Date
Nov 8 2007 23:18:08
Configure Command
cscript /nologo configure.js "--enable-snapshot-build" "--with-gd=shared"
Server API
Apache 2.0 Handler
Virtual Directory Support
enabled
Configuration File (php.ini) Path
C:\WINDOWS
Loaded Configuration File
D:\EasyPHP\PHP\php.ini
PHP API
20041225
PHP Extension
20060613
Zend Extension
220060519
Debug Build
no
Thread Safety
enabled
Zend Memory Manager
enabled
IPv6 Support
enabled
Registered PHP Streams
php, file, data, http, ftp, compress.zlib, compress.bzip2, zip
Registered Stream Socket Transports
tcp, udp
Registered Stream Filters
convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, zlib.*, bzip2.*
posted @ 2011-12-28 12:55 Jason .Z 阅读(131) 评论(0)
编辑
ffmpeg简介
FFmpeg 是一款跨平台的,对视频、音频进行录制、转换、播放的命令行形式软件,它使用的是 libavcodec 编解码器。FFmpeg 官方网站是 http://ffmpeg.org/ 。
官方网站提供的是未编译的 FFmpeg 源代码。有兴趣的朋友可以自己下载源代码编译。一般我们都会偷懒,去下载现成的。
php_ffmpeg资源
源码及编译方式见:
http://sergey89.ru/notes/ffmpeg-php-windows/
各种win32版本的下载:
http://ffmpeg.arrozcru.org/builds/
配置方法
1,解压
2,将 php_ffmpeg.dll 文件 复制到 php 的 extension 目录
3,将其他所有文件复制到 Windows 的SysWOW64目录(注意:32位系统复制到windows的 system32目录里)
4,在 php.ini 文件中,增加一句: extension=php_ffmpeg.dll
5,重启 apache
可以用 phpinfo(); 函数看安装结果。如果出现 ffmpeg support enable 字样,说明安装成功。
刚开始的时候,把相关文件拷贝到了system32中,总出错,提示“unable to load dynamic library‘ xx/xx/php_ffmpeg.dll’”,后来感觉可能是版本不对,想找到相应的64位的php_ffmpeg.dll文件,走了很多弯路,最后看到转载的这篇文章,才成功。
原创版本没有找到,网上传播很广的都是改过的转载,但链接都没有了。 我这里加入了两个链接,在此向原作者致谢,同时未经许可,对文字做了修改,请谅解。另外把我自己下载的版本提供给大家下载。我的是php5.3版本的:
ffmpeg-php-5.3-win32-all.zip
posted @ 2011-12-20 17:18 Jason .Z 阅读(20) 评论(0)
编辑
本文记录youtube 的几个常用api,并使用其中一个介绍其使用方式。
首先,我们来看看这几个api:
http://gdata.youtube.com/feeds/users/username/uploads
- videos uploaded by username
http://gdata.youtube.com/feeds/users/username/favorites
- videos bookmarked by username
http://gdata.youtube.com/feeds/users/username/playlists
- playlists created by username
http://gdata.youtube.com/feeds/users/username/subscriptions
- username's subscriptions
就是说,如果你要显示username这个用户(不知道有没有这个用户)的视频,可以访问
http://gdata.youtube.com/feeds/users/username/uploads
这个路径来获取数据。其他的就不用讲了。
有趣的是,google给这四个api设置了差不多的参数,常用的有:
?max-results=50:
最多要返回的记录数(默认情况下是25),不过要记住,youtube每次访问可返回的最大值恰好也是50,如果想要获得更多内容,可以多请求几次,哈哈。
?alt=rss or ?alt=json:
alt参数用于设置返回内容的格式。
?vq=query:
用于筛选结果,会从 metadata (title, tags, description)中进行检索,比如“google+ maps”,就是搜索google map。
?orderby={updated, viewCount, rating, relevance}:
排序,示例中以updated为第一排序,relevanced作为最后一个排序。
使用jquery的AJAX进行访问也很简单:
$.ajax({
type: "GET",
url: "http://gdata.youtube.com/feeds/users/username/uploads?alt=json”,
cache: false,
dataType: 'jsonp',
success: function (data) {
showMyVideos(data);
},
error: function (XMLHttpRequest, textStatus, errorThrown, data) {
alert("Not able to fetch the data due to feed unavailability!!!");
}
});
这里的showMyVideos(data)的方法就没必要写了,实际上我们只要随便找之前用到的播放器把内容显示出来就行了。而data结构还是比较复杂的,这里简单说一下。
data实际是个数组,针对其中的每一个entry(=entries[i]),我们常用的内容有:
entry.title.$t:视频的标题
entries[i].media$group.media$thumbnail[0].url:视频的缩略图
entries[i].media$group.media$content[0].url:视频的实际地址,这里content[0]实际是第一视频的地址,这个是flv格式的视频,如果不支持flash,可以取第二个。
entry.published.$t:这是发布时间。
entry.yt$statistics.viewCount:这个是被浏览次数。
似乎没有直接提供视频的id,但是我们可以通过字符串算出来:
entries[i].media$group.media$content[0].url.substr(playerUrl.indexOf('v/') + 2, 11)
好了,基本的东西就这些了,其实也可以自己在firebug中输出一下,然后对比一下就知道怎么回事了,或者输出rss自己对比xml。还是很简单的。
posted @ 2011-12-12 18:29 Jason .Z 阅读(6) 评论(0)
编辑
之前,在一个站点的配置中增加了对mp4等文件类型的支持,重装系统后,发现站点的代码报错,错误内容即标题。详细情况如下
之前的IIS配置中,.mp4类型的文件默认无法访问,所以个人在IIS7.5的mime类型中增加了.mp4的类型的支持,但问题是需要每台机器中增加这些设置,不利于团队协作,于是,只好将这些修改体现在代码上,具体实现方式为:
在站点的web.config中增加了
<staticContent>
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4a" mimeType="video/mp4"/>
<mimeMap fileExtension=".m4v" mimeType="video/m4v" />
<mimeMap fileExtension=".ogv" mimeType="video/ogg"/>
<mimeMap fileExtension=".webm" mimeType="video/webm"/>
</staticContent>
修改后一直正常运行。
前不久本人的电脑C盘空间不足,折腾多次后,无奈格盘重装,分给C盘很大的空间,系统也改为64位。今日重新运行该网站,即报错:
配置错误: 在唯一密钥属性“fileExtension”设置为“.mp4”时,无法添加类型为“mimeMap”的重复集合项。
怪的是代码现在仍在他人机器上正常运行,所以百度寻求答案。有云IIS应用程序池如果是集成模式,改为经典模式即可,但尝试后没有效果。
当然google也查了,这次甚为奇怪,google查不到(某些关键字又被屏蔽了?)。
这时候才想起来自己解决,看说明,似乎是扩展名的设置重复了嘛。于是删除该段配置,发现程序正常运行,且对于.mp4文件仍旧支持。
原来是IIS7.5默认的文件扩展支持增多了,而且,更可恶的是百度到的各种解释,竟然没有一个说这种解决方法的。
不过,为了与大家的一致,这里加了一段多余的配置:
<staticContent>
<remove fileExtension=".mp4" />
<remove fileExtension=".m4a" />
<remove fileExtension=".m4v" />
<mimeMap fileExtension=".mp4" mimeType="video/mp4" />
<mimeMap fileExtension=".m4a" mimeType="video/mp4"/>
……
</staticContent>
posted @ 2011-10-18 14:18 Jason .Z 阅读(146) 评论(0)
编辑
确认的php和apache环境配置:
1.请PHPer确认你的PHP版本是否在5.2.0以上..如果不是的话..请更新到5.2.0,否则.Zend Framework 好像用不了。
PHP源码最新版下载地址为:http://www.php.net/downloads.php.
2.你的PHP环境配置好了之后,请打开php.ini文件,确认PDO扩展是否打开:
;extension=php_mysql.dll
;extension=php_pdo.dll
;extension=php_pdo_mysql.dll
修改
extension=php_mysql.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll 去掉分号
还有:
; Windows: "\path1;\path2"
include_path = ".;c:\php\includes;e:\wwwroot\zendf\library" (zend framework的libary支持)
3.打开APACHE文件夹里面的httpd.conf文件.配置mod_rewrite.so的支持
#LoadModule rewrite_module modules/mod_rewrite.so
修改:LoadModule rewrite_module modules/mod_rewrite.so (去掉#号)才支持Zend framework
4. 查找到httpd.conf文件,如果AllowOverride为None的话..请一定把None都改成all.这样你写.htaccess这样的文件才会起到作用..
将所有的:AllowOverride None替换AllowOverride all 支持.htaccess文件
5.重新启动你的APACHE服务器.这样我们的PHP环境就可以运用Zend Framewrok了.
安装zend tool
下载zend framework的zip文件,解压,配置环境变量的path路径:
在path变量的结尾处增加:
;D:\Program Files\Zend\ZendFramework\bin
该路径是解压目录中的bin目录的路径,注意前面的;不用丢掉
测试安装是否成功:
在命令行中输入:
zf show version
这句话是显示版本,如果顺利,会输出版本,否则会报错。我这里显示:
zend framework version:1.11.10
创建项目
可以使用zendtool创建项目,命令行:
通过命令行进入站点根目录(一般是htdocs目录),键入命令:
zf create project zf_proj
然后回车,会创建一个zf_proj的目录,里面自动创建一些必要的文件和文件夹。目录结构如下:

如果没有安装phpuint这个单元测试工具的话,会有提示,不过没关系,不用理它。
当然,你也可以把下载的目录拷贝到自建的目录,刚才那个命令并未做任何配置的工作。
一般来说,图片、js和css文件要防止public目录下,而library文件夹里面要放下在到的zendframework的文件,就是把压缩包里的library文件夹里的内容(其实只有一个zend文件夹)拷贝过来就可以了。
好了,现在我们测试下,打开以下地址:
http://localhost/zf_proj/public/
就可以看到欢迎页面,这里就不上图了。
posted @ 2011-09-09 18:12 Jason .Z 阅读(313) 评论(0)
编辑
摘要: 最近在研究各种api,本来要先搞人人的api,但人人的各种申请太繁琐了,.NET的skd很好用,代码写的很简单,但是php的那份死活调不通,作者也已经好几个月没有更新过了,同时有几个特别想测试的api偏偏需要申请,你说这学习研究阶段,懒的去申请,所以就暂缓搞人人的api了。这两天在新浪云里面整了个应用,顺便了解下新浪的api。 首先,需要注册新浪开发者账户,http://open.weibo....
阅读全文
posted @ 2011-08-25 15:26 Jason .Z 阅读(563) 评论(1)
编辑
摘要: 近期参与了一些开发facebook相关应用的项目,由于国内访问困难,相关资料查找及测试都比较困难,起初只做一些简单的调用,比如要从手机上打开facebook的发送消息的页面,并把对应的参数传递过去。这个本应该是个很简单的工作,但由于我们对其并不熟悉,相关资料都查过好多。本想咨询做过facebook相关项目开发的iphone团队,可对方使用的是ios上的一个sdk,至于要打开哪个页面,就不知道了。当然,后来这些问题都解决了,我上一篇文章中有对具体方法的描述,但感觉就像一个外行在做开发,我觉得个人站长都应该对此很明白(这些内容甚至不需要使用facebook的api)。 现在另一个项目是开发fac.
阅读全文
posted @ 2011-08-19 17:18 Jason .Z 阅读(429) 评论(0)
编辑
摘要: .NET在调用C++做的exe的时候,调试跟不进去,只好在各行添加日志以记录执行到哪里了。 首先添加以下引用 #include <fstream>#include <iostream> 代码中使用时:...
阅读全文
posted @ 2011-07-05 11:00 Jason .Z 阅读(32) 评论(0)
编辑
摘要: 在用vs打开项目后,编译的时候出现“Please use the /MD switch for _AFXDLL builds” 这个错误的解决方法如下: 修改如下设置:工程(Project)->属性(Properties)->配置属性(Configuration Properties)->c/c++->代码生成(Code Generation)->运行时库(Use run-time library...
阅读全文
posted @ 2011-06-27 11:22 Jason .Z 阅读(466) 评论(0)
编辑
摘要: 近期有个mobile的项目,需要在项目中加两个功能,是在twitter和facebook上发消息的按钮,客户不想自己做界面,希望直接调用各自网站上的页面发消息。这俩网站国外很流行,国内却无法访问,也没怎么用过,不甚了了。于是开始查资料。1、Twitter twitter上发消息其实很简单,很多地方提供生产twitter按钮的功能,访问也完全支持get方式的访问。就是说完全可以直接输入一个url地址,就可以打开对应的twitter页面,且可以传入想要的信息内容。对比国外网站对twitter的引用和官网上提供的button按钮的说明,我们很快找到了这样一个地址,示例如下: http://twit.
阅读全文
posted @ 2011-05-18 16:20 Jason .Z 阅读(124) 评论(0)
编辑