php
afeiqiang
这个作者很懒,什么都没留下…
展开
-
ECShop 批量上传商品乱码问题解决
客户反映,ECShop后台用CSV批量上传商品数据包出现一堆乱码,字段完全对不上。分析了代码后发现,ECShop读CSV的方式弱爆了。在 admin/ 目录下找到good_batch.php 这段代码 /* 将文件按行读入数组,逐行进行解析 */ $line_number = 0; $arr = array(); $goods_list = array()原创 2012-09-07 23:29:34 · 6242 阅读 · 4 评论 -
Rolling cURL: PHP并发最佳实践
在实际项目或者自己编写小工具(比如新闻聚合,商品价格监控,比价)的过程中, 通常需要从第3方网站或者API接口获取数据, 在需要处理1个URL队列时, 为了提高性能, 可以采用cURL提供的curl_multi_*族函数实现简单的并发.本文将探讨两种具体的实现方法, 并对不同的方法做简单的性能对比. 1. 经典cURL并发机制及其存在的问题经典的cURL实现机制在网上很容易找到, 比如转载 2015-11-19 02:29:43 · 1107 阅读 · 0 评论 -
centOS6 php 编译 imap 模块
php 编译 c-client imap 客户端.下载地址 http://www.washington.edu/imap/mirrors.html第一步,编译 c-client官方文档说到底有点坑,编译报错 “错误:x509v3.h:没有那个文件或目录”,搜了下论坛,使用下面的命令编译通过 make slx SSLINCLUDE=/usr/include/openssl/ EX原创 2014-11-17 21:49:33 · 3080 阅读 · 0 评论 -
php缩放图片
推荐一个简单实用的缩放图片工具 SimpleImage,参考http://www.white-hat-web-design.co.uk/blog/resizing-images-with-php/使用方法:设定宽高,不等比例缩放 include('SimpleImage.php'); $image = new SimpleImage(); $ima原创 2013-06-09 00:28:17 · 1644 阅读 · 0 评论 -
joomla jce editor 解决上传中文名文件问题
不论是JCE还是CKEDITOR,都没解决中文名文件的问题,要么上传失败,要么传上去了中文名不能被web访问。相比之下,JCE更加人性化,比如文件上传后默认被选中,不需用户在那么小的弹出窗口去上下翻搜寻刚刚上传的文件。研究了下JCE的源码,改掉保存文件名的方式,使用纯数字来作为文件名。到joomla安装的目录,找到components/com_jce/editor/extensions/bro原创 2013-05-01 18:04:15 · 2530 阅读 · 0 评论 -
PHP 多进程实践(三)
5. windows多线程windows系统不支持pcntl函数,幸好有curl_multi_exec()这个工具,利用内部的多线程,访问多个链接,每个链接可以作为一个任务。编写脚本 test1.php<?phpdate_default_timezone_set( 'Asia/Chongqing');$tasks = array( 'http://loca原创 2013-01-15 20:25:51 · 4730 阅读 · 0 评论 -
PEAR LOG日志系统
在健壮的软件体系里面,日志扮演着十分重要的角色。日志系统设计的好坏,直接影响到软件运行的可靠性。PEAR的LOG是一个小巧实用的日志系统,可以将日志记录到文件、数据库、系统日志,或输出到控制台。简单的例子include 'Log.php';$log = Log::singleton("file" , HOME_DIR.'/var/logs/feedbowl.log');原创 2013-01-15 18:08:27 · 2482 阅读 · 1 评论 -
PHP 多进程实践(二)
3. 非阻塞方式阻塞方式失去了多进程的并行性。还有一种方法,既可以回收已经结束的子进程,又可以并行。这就是非阻塞的方式。修改脚本:<?php// example of multiple processesdate_default_timezone_set( 'Asia/Chongqing');declare (ticks = 1);pcntl_signal(SIGCHLD, "原创 2013-01-14 20:20:56 · 2116 阅读 · 0 评论 -
PHP 多进程实践(一)
1. 直接方式pcntl_fork() 创建一个进程,在父进程返回值是子进程的pid,在子进程返回值是0,-1表示创建进程失败。跟C非常相似。测试脚本 test.php<?php// example of multiple processesdate_default_timezone_set( 'Asia/Chongqing');echo "parent start, pid "原创 2013-01-14 20:19:55 · 5606 阅读 · 0 评论 -
SVN + ZendStudio + Extract 快速持续部署
背景:PHP项目部署到服务器后,少不了后续的更新,更新Bug或者添加新功能。如果用FTP 上传文件既麻烦又容易出错,漏掉某个文件。改动过的文件怎样能方便地更新到服务器上,尽量避免错漏。使用 ZendStudio 过程中发现一个简便的方法。前提是已经建立了SVN管理代码。步骤:1. SVN 提交代码 成功提交后,可以在版本历史中看到刚刚的提交。在Navigate原创 2012-11-30 20:10:48 · 1032 阅读 · 0 评论 -
邮件服务器-SMTP命令行发送邮件
测试命令行smtp发送邮件。telnet smtp.163.com //说明外网的一个163邮件服务器220 163.com Anti-spam GT for Coremail System (163com[20090903])ehlo 126.com //连接126.com域名下的邮件服务器,自动寻找。如果没有那就对不起250-mail250-PIPELINI转载 2012-12-12 11:01:15 · 5416 阅读 · 0 评论 -
PEAR MDB2 quote 简单分析
为了防止SQL注入,将SQL提交给数据库前使用 quote 处理变量值是必不可少的步骤。如下面的例子:$db=& MDB2::connect($dsn, $options);$query = "SELECT * FROM users WHERE userid = ".$db->quote('2554963798', 'float');1. quote 的数据类型quo原创 2012-12-10 18:15:03 · 1005 阅读 · 0 评论 -
Openx读全部字段的Bug
Admin_DA:: _getEntities( $entity, $aParams, $allFields) 被设计为读取一个实体对象,这跟Java里的JPA设计极相似。例如Admin_DA:: _getEntities( 'ad', $aParams, $allFields) 取出的是广告对象。但坑爹的是 $allFields 这个参数。按照设想,如果$allFields 设为原创 2012-11-20 14:10:16 · 1199 阅读 · 0 评论 -
PHP导出Excel单元格自动换行
强大的Spreadsheet Excel Writer可以将数据导出成Excel文件,并设置字体、颜色、单元格大小等等格式。 $workbook = new Spreadsheet_Excel_Writer();$filename = date('YmdHis').'.xls';//csv$workbook->send($filename); // 发送 Excel 文件名供下载$w原创 2012-11-13 18:17:19 · 9427 阅读 · 0 评论 -
OpenX数据表添加字段
OpenX的版本是2.8.9。在数据表加完数据库之后,还不能读取和保存字段。OpenX使用scheme来管理数据库表和字段,修改数据库结构同时也要修改相关schema,一个是etc/tables_core.xml, 另一个是lib/max/Dal/DataObjects/db_schema.ini。在 etc/tables_core.xml 加入结点,用来把数据读出到对象;在 lib/ma原创 2012-11-05 22:23:39 · 1394 阅读 · 2 评论 -
PHP导出带样式的Excel
有时客户会向你抱怨,软件为他们导出的Excel格式太难看了,或许这篇文章会对你有所帮助。在用PHP导出数据的同时还可以设置颜色、字号大小、加粗、合并单元格等等。在这里需要用到PEAR的两个软件包 Spreadsheet Excel Writer 和 OLE,如果没有可以分别从 http://pear.php.net/package/Spreadsheet_Excel_Writer/ 和 http:原创 2012-09-30 10:27:34 · 5901 阅读 · 0 评论 -
DedeCMS二级导航菜单的实现
DedeCMS 的 channel 标签不支持嵌套,不能在模板上直接通过标签来实现多级导航菜单。也有网友通过修改 channel 标签来实现。但感觉这种方法不够通用。但感觉不够通用。我的方法不需要修改标签库,主要思路是用JS构造下级菜单,把下级菜单的HTML注入到上级DOM。上代码 首 页 {dede:原创 2012-09-10 22:30:26 · 3583 阅读 · 1 评论 -
PHP 与 JavaScript 的运算符优先级差异
两者优先级大部分都一样,比较(comparision)运算和赋值(assignment)运算有细微的差别。比较运算符有 >, = 等等,赋值运算符有 =, +=, *= 等等。JS 里比较运算符比赋值运算符优先级高。于是 foo = 1 PHP 里反过来,赋值运算符比比较运算符优先级高。于是 foo = 1 foo = (1 附:PHP与JavaScript完整的运算符优先原创 2015-12-03 16:39:08 · 1051 阅读 · 0 评论