1.将支付宝开发文档(可以到支付宝官方下载实例)中实例文件放在library中,将alipay_service.php、alipay_notify.php放在Zend framework项目中library目录下alipay文件夹下。 2.这里假定你已经确定唯一订单号sn、商品名称、商品描述、交易类型为即时到账交易、合作伙伴ID、安全检验码、卖家支付宝帐户。 接下来去选择支付方式: 点击支付宝付款请求的控制器,alipay这个控制器主要负责将数据库中的 合作伙伴ID、安全检验码、卖家支付宝帐户以及订单的详细信息读取出来就可以了 我的控制器: public function alipayAction() { $request = $this->_request->getParams (); $m = new Default_Model_Member (); $arr = $m->gettheconig (); foreach ( $arr as $key => $val ) { $data [$val [c_key]] = $val [c_val]; } $this->view->config = $data;//数据库中配置文件:合作伙伴ID、安全检验码、卖家支付宝帐户 $yytj = new Member_Model_Yytj (); $order=$yytj->getoneorder ( $request );//print_r($order);die; $this->view->order=$order;//订单的详细信息 } [...]
今天开发支付接口时,提示TRADE_NOT_ALLOWED_PAY错误,第一次支付时还没出现这种问题,而且代码也没修改,最后百度了一下 原因:如下 提交的定单号重复,提交到支付宝页面的外部商家定单号(out_trade_no)必须是唯一的,可以采用id+日期+随机数 保证唯一. 原来这个订单我已经支付过了,当再次支付的时候就会提示TRADE_NOT_ALLOWED_PAY错误,看来支付宝考虑的挺全面的,防止支付成功后重复支付。支持一下支付宝。。。
首先php.ini中开启curl扩展,在php.ini中搜到;extension=php_curl.dll,把前面的;去掉,然后把libeay32.dll、ssleay32.dll、php_curl.dll复制到C:WINDOWSsystem32文件夹下面,最后重启一下Apache就可以支持curl扩展了。 接下来模拟登录discuz论坛,接着可以发帖了 <?php $discuz_url = 'http://testdiscuz.com/bbs/';//论坛地址 $login_url = $discuz_url .'logging.php?action=login';//登录页地址 $post_fields = array(); //以下两项不需要修改 $post_fields['loginfield'] = 'username'; $post_fields['loginsubmit'] = 'true'; //用户名和密码,必须填写 $post_fields['username'] = 'admin'; $post_fields['password'] = 'admin'; //安全提问 $post_fields['questionid'] = 0; $post_fields['answer'] = ''; //@todo验证码 $post_fields['seccodeverify'] = ''; //获取表单FORMHASH $ch = curl_init($login_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $contents = curl_exec($ch);//print_r($contents);die; curl_close($ch); preg_match('/<inputs*type="hidden"s*name="formhash"s*value="(.*?)"s*/>/i', $contents, [...]
将下面的这个方法:放到fckeditor/editor/filemanage/connectors/php/commands.php中 function imageWaterMark($groundImage,$waterPos=0,$waterImage="",$waterText="",$textFont=5,$textColor="#FF0000") { $isWaterImage = FALSE; $formatMsg = "暂不支持该文件格式,请用图片处理软件将图片转换为GIF、JPG、PNG格式。"; //读取水印文件 if(!empty($waterImage) && file_exists($waterImage)) { $isWaterImage = TRUE; $water_info = getimagesize($waterImage); $water_w = $water_info[0];//取得水印图片的宽 $water_h = $water_info[1];//取得水印图片的高 switch($water_info[2])//取得水印图片的格式 { case 1:$water_im = imagecreatefromgif($waterImage);break; case 2:$water_im = imagecreatefromjpeg($waterImage);break; case 3:$water_im = imagecreatefrompng($waterImage);break; default:die($formatMsg); } } //读取背景图片 if(!empty($groundImage) && file_exists($groundImage)) { $ground_info = getimagesize($groundImage); $ground_w = $ground_info[0];//取得背景图片的宽 [...]
1.先将fckeditor下载下来放在public/scripts/fckeditor,接下来以Zend framework插件形式,在自己的扩展类中编写Wind_Controller_Plugin_Fckeditor : <?php require_once 'Zend/Controller/Plugin/Abstract.php'; class Wind_Controller_Plugin_Fckeditor extends Zend_Controller_Plugin_Abstract { public function fckEditor($name = '', $value = '', $options = array()) { include_once ("../public/scripts/fckeditor/fckeditor.php"); $fck = new FCKeditor ( $name ); $fck->Config ['EnterMode'] = ((isset ( $options ['EnterMode'] )) ? $options ['EnterMode'] : 'p'); $fck->ToolbarSet = ((isset ( $options ['ToolbarSet'] )) ? $options ['ToolbarSet'] [...]
这位哥的帖子: 一共有两位哥考我.. 第一位哥比较侧重理论和算法.. 考了我设计模式和一个算法题. 这个题是这样的.在O(n)的条件下 用rand函数把一个数组绝对打乱. 我的解法是 第一次循环rand(2,数组长度) 然后用这个下标跟第一个元素交换 第二次循环是rand(3,数组长度) 然后用这个下标跟第二个元素交换.. 以此类推 不知道行不行 汗.. 第二位哥注重的是实际考察 1.设计一个微博 就想sina那样能抵住高访问量.(不会) 2.反转一个字符串(竟然我这个都做错了 杯具) PS: 百度的大楼好宏伟.里面的厕所真舒服.办公环境真爽啊.. PPS:再见百度 看来无缘. 对了 问PHP源码的也比较多 比如zend引擎的一些函数实现的原理是什么 看了这位哥的面试,我以后学习PHP要侧重的地方:PHP手册需要多看两遍,一方面可以系统学习PHP,另一方面可以让PHP基础知识再牢固一点,有关C语言的学习,PHP是用C语言开发出来的,所有具有良好的C语言基础,会对PHP的原理更进一层认识,再个就是可以看看PHP源码,Zend引擎的函数。
今天在写论坛会员注册表单验证时,发现如果信息错误,则加载error类(jQuery(‘#regmsg’).addClass(‘error’);),error背景图片提示错误,但是当正确的信息提示时,加载的是success类(jQuery(‘#regmsg’).addClass(‘success’);),但是没有加载success类的正确背景图片,打开源文件发现,class=”error success”,看到问题原因了吧,在加载succes类时先移除error类就可以了(jQuery(‘#regmsg’).removeClass(‘error’);)。问题解决。
今天用ZF写论坛时(用的discuz的模板),发现discuz中common.js和jquery.js的有冲突,以下是解决办法: $(document).ready(function() {….} ); 这是jQuery的代码,因为discuz里的common.js也是用$,所以产生冲突,下面把我们要用的代码中的$符号换一下就解决了。 先加载discuz的common.js,然后加载jQuery 最后使用别名 jQuery.noConflict(); 代码如下: var ready= jQuery.noConflict(); ready(function(){ //点击注册 jQuery(‘#reg1,#reg2,#reg3′).click(function(e){ e.preventDefault();jQuery.modal.close(); jQuery(‘#registerform’).modal(); }); 注意:要把jQuery里的$换成jQuery
1.IP数据库我们采用纯真的IP数据库QQWry.Dat,然后将写好的查询IP的类做成Zend framework插件的形式,类似Fckeditor写成Zend framework插件查询IP数据库的类代码如下: <?php require_once 'Zend/Controller/Plugin/Abstract.php'; class Wind_Controller_Plugin_IpLocation extends Zend_Controller_Plugin_Abstract { /** * QQWry.Dat文件指针 * * @var resource */ var $fp; /** * 第一条IP记录的偏移地址 * * @var int */ var $firstip; /** * 最后一条IP记录的偏移地址 * * @var int */ var $lastip; /** * IP记录的总条数(不包含版本信息记录) * * @var int */ var $totalip; /** * 构造函数,打开 QQWry.Dat [...]
1.首先如何生成txt: 根据例子很容易绘制出你想要输入的txt文本格式,制定某个范围内字符串的长度,多的话用空格代替, 最后得出自己想要的格式赋给$content; 接下来生成txt文档代码如下: $filename = "./upload/txt/".date ( 'YmdHis' ) . '.txt'; $of = fopen ( $filename, 'w' ); if ($of) { fwrite ( $of, $content ); } fclose (); 2.其次是通过PHP实现浏览器点击下载TXT文档 生成的txt如果输出到浏览器,默认是可以直接在浏览器中打开的,但是我们想让PHP生成的txt文档直接输出到 浏览器为下载格式,如何处理,直接上代码: header(“Content-Type: application/force-download”); header(“Content-Disposition: attachment; filename=”.basename($filename)); readfile( $filename); 说明一下:application/force-download为强制浏览器下载txt文档;最后通过readfile函数,将文件流输出到浏览器,这样就实现了txt文件的下载。



