导航

随笔分类 -  编程开发 - PHP

摘要:以前使用的方式是将所有的文章日期读出来,然后一笔一笔处理:function _archives() { $sql = "select updatetime from tbs_articles"; $rows = $this->db->getAll($sql); $archives = array(); foreach ($rows as $row) { $month = gmdate("Ym", $row['updatetime'] + $this->_getOption('timeoffset') * 阅读全文

posted @ 2012-12-28 21:05 eastson 阅读(357) 评论(0) 推荐(0) 编辑

摘要:1.下载最新的PHPMyAdmin版本。2.解压下载的文件到apache/htdocs目录下。3.复制config.sample.inc.php到config.inc.php。4.将下面的内容加入到config.inc.php:$cfg['Servers'][$i]['AllowNoPassword'] = true;$cfg['Servers'][$i]['host'] = '127.0.0.1';$cfg['Servers'][$i]['user'] = 'root 阅读全文

posted @ 2012-12-28 21:02 eastson 阅读(264) 评论(0) 推荐(0) 编辑

摘要:正则表达式是程序开发中一个重要的元素,它提供用来描述或匹配文本的字符串,如特定的字符、词或算式等。但在某些情况下,用正则表达式去验证一个字符串比较复杂和费时。本文为你介绍10种常见的实用PHP正则表达式的写法,希望对你的工作有所帮助。1. 验证E-mail地址这是一个用于验证电子邮件的正则表达式。但它并不是高效、完美的解决方案。在此不推荐使用。$email = "test@ansoncheung.tk";if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA- 阅读全文

posted @ 2012-12-14 12:00 eastson 阅读(178) 评论(0) 推荐(0) 编辑

摘要:测试代码:$a1 = array('dbhost' => 'localhost', 'dbname' => 'nextblog', 'dbport' => 3306);$a2 = array('dbuser' => 'root', 'dbpass' => 'pass', 'dbport' => 3305);print_r(array_merge($a1, $a2));print_r($a1 + $a2 阅读全文

posted @ 2012-11-30 15:37 eastson 阅读(245) 评论(0) 推荐(0) 编辑

摘要:php.ini中有两个和错误有关的配置变量:error_reportinginteger设置错误报告的级别。display_errorsstring该选项设置是否将错误信息作为输出的一部分显示到屏幕,或者对用户隐藏而不显示。display_errors配置变量控制了error_reporting产生的错误信息是否输出到浏览器画面中,其值可以True/False或者On/Off。error_reporting的预定义常量http://cn.php.net/manual/zh/errorfunc.constants.php。PHP错误和日志记录配置选项http://cn.php.net/manua 阅读全文

posted @ 2012-11-30 15:36 eastson 阅读(243) 评论(0) 推荐(0) 编辑

摘要:实现代码:function _cloudHtml($data = array(), $minFontSize = 12, $maxFontSize = 30){ $minimumCount = min(array_values($data)); $maximumCount = max(array_values($data)); $spread = $maximumCount - $minimumCount; $cloudHTML = ''; $cloudTags = array(); $spread == 0 && $spread = 1; forea... 阅读全文

posted @ 2012-11-30 15:34 eastson 阅读(315) 评论(0) 推荐(0) 编辑

摘要:PHP开发时有时候会用到缓存文件,也就是会碰到往服务器写文件的情况。新增一个分离的缓存目录,一般都用cache命名。cache目录需要授权网页浏览者能够写入,一般这样处理:chmod0777cache。授权后cache目录应该是可以新建文件的,但是新建的文件对应的owner=daemon,group=daemon,所有者是daemon是由httpd.conf配置决定的。这个时候服务器上的其它的使用是无法修改此文件的,最好在文件写入成功后再调用PHP的chmod()函数修改权限。function write_cache($name, $data){ global $_CACHE; ... 阅读全文

posted @ 2012-11-30 15:33 eastson 阅读(393) 评论(0) 推荐(0) 编辑

摘要:<?php function format_filesize($filesize) { if ($filesize < 1024) { return $filesize.'byte'; } else if (($size = round($filesize/1024,2)) < 1024) { return $size.'KB'; } else if (($size = round($filesize / (1024*1024), 2)) <... 阅读全文

posted @ 2012-11-30 15:28 eastson 阅读(211) 评论(0) 推荐(0) 编辑

摘要:今天在ChinaUnix在看到一段记录爬虫程序的代码:function saveRobot($dir){ $addtime = date('Y-m-d H:i:s',time()); $GetLocationURL= "http://".$_SERVER["HTTP_HOST"].$_SERVER['REQUEST_URI'] ; $agent1 = $_SERVER["HTTP_USER_AGENT"] ; $agent=strtolower($agent1); $Bot=''; if 阅读全文

posted @ 2012-11-30 15:25 eastson 阅读(352) 评论(0) 推荐(0) 编辑

摘要:在向表中插入数据的时候,经常遇到这样的情况:1.首先判断数据是否存在;2.如果不存在,则插入;3.如果存在,则更新。在SQLServer中可以这样处理:if not exists (select 1 from t where id = 1) insert into t(id, update_time) values(1, getdate()) else update t set update_time = getdate() where id = 1那么MySQL中如何实现这样的逻辑呢?别着急!MySQL中有更简单的方法:replace into t(id, update_time) ... 阅读全文

posted @ 2012-11-30 15:24 eastson 阅读(1465) 评论(0) 推荐(0) 编辑

摘要:今天用PHP读取的MySQL中的中文内容字段,结果读取出来的居然乱码。使用下面的语句设置连接编码,结果还是照旧。$charset = $params['charset']; mysql_query('SET character_set_connection=$charset, character_set_results=$charset, character_set_client=binary', $db);我确定数据库建立的时候用的是utf8,页面输出编码是utf-8,这些都没有问题。那问题出在哪里呢?调试PHP发现,从数据库读出来的结果就是乱码的,难道是连接 阅读全文

posted @ 2012-11-30 15:20 eastson 阅读(398) 评论(0) 推荐(0) 编辑

摘要:以前做的一个例子,用PHP模拟Web服务器和客户端。年初的时候网站数据丢失,重新补传一次。服务端代码server.php:<?php$host = '127.0.0.1';$port = 9083;$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);if ($socket === FALSE){ display_socket_error();}if (socket_bind($socket, $host, $port) === FALSE){ display_socket_error();}if (socket_l 阅读全文

posted @ 2012-11-30 15:18 eastson 阅读(552) 评论(0) 推荐(0) 编辑

摘要:Windows 8出来了,官方网站上提供了很多的壁纸供人们下载。本代码的目的是使用PHP的正则表达式一次将所有的壁纸都下载下来。<?php// 下载网址$html = file_get_contents('http://windows.microsoft.com/zh-CN/windows/wallpaper?T1=all');// 壁纸图片都应该放在这样的标签内.$pattern = '/<div class="prodPaneImage"><a href=".*"><img class=&q 阅读全文

posted @ 2012-11-27 08:27 eastson 阅读(217) 评论(0) 推荐(0) 编辑

摘要:因为程式的需要,将一系列的值组合起来保存到了数据库的一个text字段,中间用回车换行符分开,看起来象这样:adminxxx@admin.comadminyyy@admin.comadminzzz@admin.com取值时再转换成数组:<?php$result = array(); // 转换后的结果$tokens = preg_split('/[\r\n]+/', $str);foreach ($tokens as $token) { if (false !== strpos($token, '=')) { list($key, $value) = exp 阅读全文

posted @ 2012-11-26 10:14 eastson 阅读(1837) 评论(0) 推荐(0) 编辑

摘要:如果您是PHP老手,当然知道当PHP脚本出错时发生了什么事情。此时PHP解析器将在屏幕上给出错误信息,如 Fatal error: Call to undefined function on line 19 --,因此程序在此处终止。这个信息会吓到客户,他可能立即打电话和你进行咨询。幸运的是,这里有解决办法。PHP拥有内置工具,可以让开发人员捕捉脚本错误然后将它们转到自定义的错误处理器。此时则可以对处理器进行编程显示更多关于错误的详细信息。还可以将错误写入文件或数据库以采取补救措施。有时候还可以对处理器编写程序忽略错误消息。本文中,我将阐述如何使用PHP的错误处理API构建用户自定义的错误处理 阅读全文

posted @ 2012-11-24 09:41 eastson 阅读(532) 评论(0) 推荐(0) 编辑

摘要:在PHP开发过程中,如果希望从外部引入一个class,通常会使用include和require方法,去把定义这个class的文件包含进来。这个在小规模开发的时候,没什么大问题。但在大型的开发项目中,这么做会产生大量的require或者include方法调用,这样不因降低效率,而且使得代码难以维护,况且require_once的代价很大。在PHP5之前,各个PHP框架如果要实现类的自动加载,一般都是按照某种约定自己实现一个遍历目录,自动加载所有符合约定规则的文件的类或函数。 当然,PHP5之前对面向对象的支持并不是太好,类的使用也没有现在频繁。 在PHP5后,当加载PHP类时,如果类所在文件没有 阅读全文

posted @ 2012-11-24 09:23 eastson 阅读(242) 评论(0) 推荐(0) 编辑

摘要:今天使用isset()函数检查一个数组中某个键值是否存在,发现一个问题。$info['page'] = null;if (isset($info['page'])) { // 存在} else { // 不存在}代码执行的结果居然是不存在。后来换成array_key_exists()就可以了。因而,对PHP的isset()使用方法有了一些怀疑,下面是一段测试代码:$info['page'] = null; c('null');$info['page'] = 0; c('zero');$info[&# 阅读全文

posted @ 2012-11-07 14:03 eastson 阅读(1027) 评论(1) 推荐(0) 编辑

摘要:utf8的编码有nobom&bom区分。<?php if (isset($_GET['dir'])){ //config the basedir $basedir=$_GET['dir']; }else{ $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir){ if ($dh = opendir($basedir)) { while (($file = readdir($dh)) !== false) { ... 阅读全文

posted @ 2012-10-22 14:51 eastson 阅读(147) 评论(0) 推荐(0) 编辑

摘要:一个简易Smarty模板类,只需要一个文件。在ecshop里面找到的,感谢ecshop。测试代码:require_once 'cls_template.php';$smarty = new cls_template;$smarty->cache_lifetime = 30;$smarty->template_dir = dirname(__FILE__) . '/cache/smarty/template/';$smarty->cache_dir = dirname(__FILE__) . '/cache/smarty/cache/&# 阅读全文

posted @ 2012-10-13 08:07 eastson 阅读(242) 评论(0) 推荐(0) 编辑

摘要:发现一个处理UTF-8编码文件BOM头的简单方法,在ecshop里面发现的。读取出文件内容后,执行下面代码将BOM去掉:if (strpos($source, "\xEF\xBB\xBF") !== FALSE){ $source = str_replace("\xEF\xBB\xBF", '', $source);} 阅读全文

posted @ 2012-10-13 08:05 eastson 阅读(349) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示