随笔分类 -  PHP

摘要:Yii为你提供了很多预定义的验证器类,同时也指定了别名,用在定义规则时。Yii1.1版本,预定义的验证器别名的完整列表如下:* boolean:它是CBooleanValidator类的别名,验证属性的值是布尔值(true或false)。* captcha:它是CCaptchaValidator类的别名,验证属性的值等于一个显示的CAPTCHA(验证码)的值。* compare:它是CCompareValidator类的别名,验证属性的值与另一个属性的值相等。* email:它是CEmailValidator类的别名,验证属性的值为有一个有效的Email地址。* default:它是CDefa 阅读全文
posted @ 2014-04-11 14:19 狂热的猴子 阅读(252) 评论(0) 推荐(0)
摘要:代码不多,只有一句,留作备用$_product->getResource()->getAttribute('属性名')->getFrontend()->getValue($_product) 阅读全文
posted @ 2014-01-28 11:05 狂热的猴子 阅读(154) 评论(0) 推荐(0)
摘要:错误提示:Unable to process payment. Please contact the merchant as the shipping address provided by the merchant is invalid, and the merchant has requested that your order must be shipped to that address.文件:app/code/core/Mage/Paypal/Model/Api/Standard.php第234行(Magento 1.4.2): $request['address_overr 阅读全文
posted @ 2014-01-28 11:04 狂热的猴子 阅读(495) 评论(0) 推荐(0)
摘要:0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。 2、$row[’id’] 的速度是$row[id]的7倍。 3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。 4、在执行for循环之前确... 阅读全文
posted @ 2014-01-28 11:02 狂热的猴子 阅读(347) 评论(0) 推荐(0)
摘要:1.使用MyISAM而不是InnoDB完全错误,反驳理由:首先原文说MyISAM是默认使用的,而实际上到了MySQL 5.5.x,InnoDB已经成为了默认的表引擎。另外,简单的使用InnoDB不是解决所有问题的方法,盲目的使用甚至会使应用性能下降10%乃至40%。最佳方法还是针对具体业务具体处理,例如论坛中版块表,新闻分类表,各种码表等长时间不操作的表,还是要用性能优异的MyISAM引擎。而需要用到事务处理的例如用户、账目、流水等严格要求数据完整性和时序性的,则需要用InnoDB引擎,并且应用也要用好事务处理机制。当然,事务处理必然要带来大量的性能损耗,但是这在简单高并发应用上是必须的。最后 阅读全文
posted @ 2014-01-28 11:02 狂热的猴子 阅读(136) 评论(0) 推荐(0)
摘要:在magento中添加一个form,可以使用magento本身就有的输入验证功能,今天给大家介绍下如何使用.magento中form使用验证:" method="post" id="test-form"> __('NUM1: ') ?>* __('NUM2: ') ?>* __('sub') ?>" /> 观察form的id与input的class:其实最关键的是:required-entry和validate-alphanum.以下为不同验证的报警信息整理 阅读全文
posted @ 2014-01-28 11:01 狂热的猴子 阅读(261) 评论(0) 推荐(0)
摘要:直接上代码:StartTime = $this->get_microtime(); } function stop() { $this->StopTime = $this->get_microtime(); } function spent() { return round(($this->StopTime - $this->StartTime) * 1000, 1); } } //例子 $runtime= new runtime;$runtime->start(); //你的代码开始 $a = 0... 阅读全文
posted @ 2014-01-28 11:00 狂热的猴子 阅读(270) 评论(0) 推荐(0)
摘要:获取Magento全部Api方法的代码其中的ApiUser和ApiKey为网站后台添加的WebService用户的连接信息,换成你自己的。Magento官方文档见:Magento core Api获得全部的Magento Api方法 www.hellokeykey.com login('ApiUser', 'ApiKey'); $result = $client->resources($session); foreach($result as $k1=>$v1) { echo ''; echo 'Title:'.$v1 阅读全文
posted @ 2014-01-28 10:59 狂热的猴子 阅读(1073) 评论(0) 推荐(0)
摘要:由于需要把一个数组存进数据库,所以考虑使用转化成字符串方法,方法基本上有两种既serialize和json_encode。两种方法各有利弊,于是乎就对这俩讨方法做了下测试。serialize、unserialize与json_encode、json_decode比较s是指序列化,即serialize、unserializej是json源代码: "PHP 是免费的,并且使用非常广泛。同时,对于像微软 ASP 这样的竞争者来说,PHP 无疑是另一种高效率的选项。PHP 极其适合网站开发,其代码可以直接嵌入 HTML 代码", 2 =>"PHP 是免费的,并且使用 阅读全文
posted @ 2014-01-28 10:58 狂热的猴子 阅读(1552) 评论(0) 推荐(0)
摘要:偶然用到这个函数,留文以作备用:定义和用法: similar_text() 函数计算两个字符串的匹配字符的数目。该函数也可以计算两个字符串的相似度(以百分比计)。语法:similar_text(string1,string2,percent)参数 描述string1 必需。规定要比较的第一个字符串。string2 必需。规定要比较的第二个字符串。percent 可选。规定供存储百分比相似度的变量名。提示和注释:注释:levenshtein() 函数比 similar_text() 函数更快。不过,similar_text() 函数通过更少的必需修改次数提供更精确的结果。例子:1.2. 阅读全文
posted @ 2014-01-28 10:57 狂热的猴子 阅读(336) 评论(0) 推荐(0)
摘要:用Zend Form可以轻松生成表单,但是如果要做修改页面,比如修改个人信息,可以通过如下方式为每个元素赋值:controller:public function editAction() { $request = $this->getRequest(); $form = new User_Form_BidAdd(); if ($this->getRequest()->isPost() && $form->isValid($request->getPost())) { $_POST['user_id'] = Zend_Auth::g 阅读全文
posted @ 2014-01-28 10:56 狂热的猴子 阅读(203) 评论(0) 推荐(0)
摘要:安装nginxsudo apt-get install nginxUbuntu安装之后的文件结构大致为:所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下程序文件在/usr/sbin/nginx日志放在了/var/log/nginx中并已经在/etc/init.d/下创建了启动脚本nginx默认的虚拟主机的目录设置在了/var/www/nginx-default[编辑]启动nginxsudo /etc/init.d/nginx start然后就可以访问了,http://localhost/ , 一切正常!如果不能访问,先 阅读全文
posted @ 2014-01-28 10:55 狂热的猴子 阅读(220) 评论(0) 推荐(0)
摘要:Centos默认没有将php-mcrypt包含在内,而使用yum install php-mcrypt提示没有这个包.处理方法:首先,安装对应的Release包:rpm -ivh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm接着更新:yum update然后键入命令yum install php-mcrypt 阅读全文
posted @ 2014-01-28 10:46 狂热的猴子 阅读(183) 评论(0) 推荐(0)
摘要:其他 isset() 变量是否存在 boolean empty() 检查变量是否存在,并判断值是否为非空或非0 void unset() 销毁变量 header('Content-Type: text/html; charset=utf-8'); method_exists($obj, $method) 判断对象的方法是否可用 file_exists($file) 判断文件是否存在 function_exists(); class_exists($class_name); gettype();获取数据类型 set_magi... 阅读全文
posted @ 2014-01-28 10:45 狂热的猴子 阅读(338) 评论(0) 推荐(0)
摘要:支持命名空间(Namespace)毫无疑问,命名空间是PHP5.3所带来的最重要的新特性。有了命名空间的概念,在开发大型站点时,就比较容易设计出灵活的结构,同时避免不同包中的类名或变量名产生冲突。在PHP5.3之前,惯例的划分Package的办法是通过目录名来分隔代码文件,代码中的类名则用下划线_来表示目录。例如这样的命名方式被PEAR、Zend Framework及各种PHP项目广泛采用。虽然该方法可以避免不同包或类库中的类名产生冲突,但在书写代码的时候显得较为麻烦和笨拙。在PHP5.3中,则只需要指定不同的命名空间即可,命名空间的分隔符为反斜杆\。这样即使其它命名空间下存在名为Select 阅读全文
posted @ 2014-01-28 10:32 狂热的猴子 阅读(218) 评论(0) 推荐(0)
摘要:10个有用的php代码:获取浏览器IP地址function getRemoteIPAddress() { $ip = $_SERVER['REMOTE_ADDR']; return $ip;}有代理服务器的情况下获取IPfunction getRealIPAddress() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { // check ip from share internet $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER[&# 阅读全文
posted @ 2014-01-28 10:28 狂热的猴子 阅读(206) 评论(0) 推荐(0)
摘要:作为Web开发中应用最广泛的语言之一,PHP有着大量的粉丝,那么你是一名优秀的程序员吗?在进行自我修炼的同时,你是否想过面对各种各样的问题,我该如何突破自身的瓶颈,以便更好的发展呢? PHP工程师面临成长瓶颈 先明确这里所指的PHP工程师,是指主要以PHP进行Web系统的开发,没有使用其的语言工作过。工作经验大概在3~4年,普通的Web系统(百万级访问,千成级数据以内或业务逻辑不是特别复杂)开发起基本得心应手,没有什么问题。但他们会这样的物点: ◆除了PHP不使用其它的语言,可能会点shell 脚本。 ◆对PHP的掌握不精(很多PHP手册都没有看完,库除外)。 ◆知识面比较窄(面对需... 阅读全文
posted @ 2014-01-28 10:18 狂热的猴子 阅读(133) 评论(0) 推荐(0)
摘要:函数功能:php里面的整数是有符号数,其内部实现其实就是long,不是unsigned long。对于32位机器来说,php最大能表示的整数就是2^31-1了,一般在应用中碰到大于2^31-1而小于2^32的数就只能用字符串来表示了。对于mixed int_ext(string in)来说,如果字符串in表示的整数小于2^31-1,那么就返回整数,如果大于就返回字符串。开发扩展步骤如下:(首先需要下载php的源码)1,建立扩展骨架cd php-5.3.14/ext ./ext_skel --extname=int_ext2,修改编译参数cd php-5.3.14/ext/int_ext v.. 阅读全文
posted @ 2014-01-28 10:17 狂热的猴子 阅读(195) 评论(0) 推荐(0)
摘要:网站需要开通接口供别人调用,用Zend Framework中的Zend_xmlrpc_server来构建一个server端。如下:server端addFunction('jencodeValue');//这里是用addFunction附加一个函数 echo $server->handle();//返回一个对象?>client端 (进行XMLRPC调用)include('Zend/Loader.php');Zend_Loader::registerAutoload();$client = new Zend_XmlRpc_Client('http 阅读全文
posted @ 2014-01-28 10:15 狂热的猴子 阅读(153) 评论(0) 推荐(0)
摘要:每个应用程序都遵循相同的流程:1.应用程序从index.php开始a.设置application,module,system的路径b.设置Error reporting的等级c.如果存在安装文件,就加载它d.引导文件,APPPATH/bootstrap.php已经引入2.一旦我们在bootstrap.php:a.Kohana类已经加载b.Kohana::init被调用来设置错误处理,缓存和日志记录c.附加Kohana_Config的阅读器和Kohana_Log的写入器d.调用Kohana::modules来开启更多的模块(1)模块路径添加到级联文件系统(2)如果每个模块的init.php文件存 阅读全文
posted @ 2014-01-28 10:14 狂热的猴子 阅读(267) 评论(0) 推荐(0)