随笔分类 - 编程
编程类的随笔
摘要:404錯誤,很多人都知道,如果要訪問的url不存在的時候就讀取顯示這個頁面.以往在處理404方面我們通常的做法是要麼簡單寫幾行字,而有心人士或許還會對其稍加美化,另外一少部份想投機取巧的傢伙甚至用meta標籤做延時轉向,僅此而已,其實404還可以幫我們做很多事,這就是今天我們要討論的重點了. 首先我來說明一下我的404究竟都能幫我做哪些事情:1.他可以告訴我何時來自哪裡的用戶要訪問我哪個URL結果失敗了.2.他能告訴我對方為何要訪問這個URL,并幫助我優化網站3.他能告訴我對方的IP地址4.他能告訴我此人的居心何在5.我可以讓他把那些不想告訴我的給閉嘴6.他能把他想要告訴我的用email...
阅读全文
摘要:開發PHP的朋友都知道,其實最擔心的就是程序中出現一些異常或錯誤,這些狀況如果輸出到用戶的螢幕會把用戶給嚇壞,甚至為此丟了工作,如果不輸出到螢幕就得想辦法記錄到日誌中,但是似乎不是每個人都有查看錯誤日誌的習慣,爲了解決這個尷尬的問題,所以我寫了這段代碼,其用意就是當我們寫的php程式出錯的時候把錯誤內容捕捉出來然後發到我們的email內.先看效果:Define('SYS_DEBUG',false);IF(SYS_DEBUG) {ini_set('display_errors','on');Error_reporting(E_ALL);//上線后使
阅读全文
摘要:在开篇之前先问大家几个问题:1.请问你知道访客在浏览你的网站的时候都曾看到过哪些错误提示吗?这些错误你有修正吗?2.请问你知道用户在访问你的网站的时候曾访问过哪些不存在的错误页面或文件呢?遇到这种状况你是如何处理的呢?3.请问当用户访问到不存在的页面时,该用户是从哪里来的呢?好了,接下来我们针对上边的问题先做出几个理想化的假设.针对第一个问题:假设当我们的网站被浏览的时候出错的时候能够马上发邮件告诉我就好了,然后我们收一下邮件看看究竟是哪里错了,然后去修改一下出错的地方,这应该就是最完美的解决方案,或许你会告诉我说:没必要那么麻烦,只需要看一下服务器上的错误日志就好了,针对这样的回应我不做任何
阅读全文
摘要:Nginx比apache要好,优点很多,随便去搜寻引擎找一下就能找到一大把资料,这不是我们讨论的重点,我们的重点是自己做一个运行组合! 為何我不從網上下載一個別人已經封裝好的現成的版本呢?因為很多人封裝了之後就不在更新了,以後想要更新都不知道怎麼做,既然如此還不如自己好好研究一下自己封裝,將來要升級也不用求人,藝不壓身! 我说下我搭配的这个组合的特点:主要構成: 1.Php 5.3 2.Nginx 1.3.6 3.Memcache 2.2.6 4.Xdebug v2.2.1注意事項: 1.不要隨意修改文件夾路徑,最好是放到d:/wnmp下,如果一定要修改路徑就...
阅读全文
摘要:效果如下:核心方法:function szb(i){ i=$(i);if(!i){return false;} adr=i.get('value'); if(adr==''){return false;} var geocoder=new google.maps.Geocoder(); var LatLng=new google.maps.LatLng(23.7,121); geocoder.geocode({'address':adr},function(results,status){ if(status==google.maps.Geoco
阅读全文
摘要:PayPal 快速、安全而又方便,是跨國交易的首選在線付款方式。現在PayPal可以和國內大部分信用卡關聯,可以實現國人的跨國交易收支。申請PayPal註冊網址:https://www.paypal.com/paypal接口與其它接口有些不同,稍微復雜一點。 其實銀行接口也算是一個站點的插件。所謂paypal ipn(Instant Payment Notification),就是Paypal開發的一種能主動通知第三方賣家系統交易狀態的一種機制。IPN的原理很簡單,就是當產生了一個交易之後, 交易狀態發生變化時,如用戶已經付款、或者退款、撤銷時,Paypal利用常用的HTTP POST方式,將
阅读全文
摘要:每一位程序员都有一套自己喜爱的代码编辑器与编程字体,譬如我们之前就推荐过一款“神器”级别的代码编辑器 Editplus,而今天我们则推荐一款相当不错的编程字体 —— Source Code Pro! Source Code Pro 是由大名鼎鼎的 Adobe 公司发布的一款开源且完全免费的等宽编程字体,它非常适合用于阅读代码,支持 Linux、Mac OS X 和 Windows 等操作系统,而且无论商业或个人都可以免费使用,相当厚道。这款字体和微软的 Consolas 一样均定位于“编程字体”,相信作为天天接触代码的开发者,你肯定不会错过这一新选择吧……Source Code Pro ...
阅读全文
摘要:最近拉了一条50兆的光纤到家里,另外还弄了一个固定IP,理所当然就是为了自己弄一台服务器. 一切就绪,就差一个SMTP用来发送Email了,搜了一下,好多人都在用系统自带的SMTP来做,但是我已经安装了apache,所以不打算再安装一个IIS因此就找第三方的软件来搭建SMTP,刚开始找到一个advanced direct remailer(ADR),确实很傻瓜,很好用,下载解压缩简单的改一下php.ini就能直接通过PHP的mail函数发信了,好景不长15天之后发不了了,得让我注册,我忙了一个晚上找这个软件的注册码,结果无果,就差没把人家的网站给黑了. 尝试着搜了一下开源的SMTP软件,见到.
阅读全文
摘要:最常见的词语二分法:$str = '这是我的网站www.7di.net!'; //$str = iconv('GB2312','UTF-8',$str); $result = spStr($str); print_r($result); /** * UTF-8版 中文二元分词 */ function spStr($str) { $cstr = array(); $search = array(",", "/", "\\", ".", ";", &q
阅读全文
摘要:今晚在做一个商品筛选的功能,通过几十个商品参数筛选商品列表,因为参数太多,外加考虑到SEO的部分,所以我不想在地址栏暴漏参数传递的部分,所以就采用了POST传值的方式来解决,但是POST传值就面临着用户刷新页面的时候总是提示是否重新POST的对话框,用搜索引擎搜了一下,目前市面上最常见的几种解决方法都测试过,但是都不适合我的情况.最后我尝试使用js在客户端延时重新给action赋值随机数,甚至用js延时动态创建form表单的方式都测试过,依然无法解决问题,偶尔看到一篇文章才明白原因.不敢藏私分享给大家. 众所周知浏览器是通过Last-Modified和Expires来处理缓存的,具体机制就不.
阅读全文
摘要:我为何不用zend studio;eclips等大块头呢,其实editplus是可以这样用的. 它的优点有很多,它体积小,启动速度快(用它打开一个几十兆的txt文件不超过5秒),很强大的编码定制功能(可以定制默认使用某个编码打开,新建或存储文件,这一点很重要,尤其是在开发PHP的时候三码统一要求颇为严格),绿色免安装,而且最关键的一个优点是,他的自定义功能很强大,我可以用它配置语法着色文件,还可以配置自动完成脚本,还可以配置素材帮我记忆那些琐碎的代码片段,尤其是这个素材功能真的不得不赞美他,记得以前学习Jquery的时候,就是借助它让我在一天之内就能流畅的写jquery的代码.以至于后来所学的
阅读全文
摘要:回想起来,我已经好久没有写点啥了,尤其是关于Mootools方面的东西,因此今天写了一个标题闪烁的插件,练练手!简单说一下这个插件的功能:该插件可以轻松的让您的<title>标题实现闪烁效果.注意:我所使用的mootools的core版本是1.4.1,其他的版本我并未测试,如果您有测试的话麻烦短消息告知我测试结果,谢谢!我们先来看一下这个插件的执行效果吧!如下图:下边是这个插件的代码:/**插件:閃爍的標題描述:該插件可以輕鬆讓您的<title>標題實現閃爍效果參數: tit:(必填)需要在<title>上閃爍的內容 tim:[可選]閃動頻率,多少毫秒閃動一
阅读全文
摘要:<?php/*** PHP操作MongoDB学习笔记*///*************************//** 连接MongoDB数据库 **////*************************//格式=>(“mongodb://用户名:密码 @地址:端口/默认指定数据库”,参数)$conn = new Mongo();//可以简写为//$conn=new Mongo(); #连接本地主机,默认端口.//$conn=new Mongo(“172.21.15.69″); #连接远程主机//$conn=new Mongo(“xiaocai.loc:10086″); #连接
阅读全文
摘要:/** * 创建父节点树形数组 * 参数 * $ar 数组,邻接列表方式组织的数据 * $id 数组中作为主键的下标或关联键名 * $pid 数组中作为父键的下标或关联键名 * 返回 多维数组 **/function find_parent($ar, $id='id', $pid='pid') { foreach($ar as $v) $t[$v[$id]] = $v; foreach ($t as $k => $item){ if( $item[$pid] ){ if( ! isset($t[$item[$pid]]['parent'][
阅读全文
摘要:以前写程序一直在逃避这个问题,tag什么的都是要求使用程序的人自行输入,对于某些懒人及为了程序的体验,则是希望可以有自动生成文章关键词,自动获取文章tag的类似功能,这次为了迎接新的项目,所以捣鼓了一晚上,研究了一下这个功能。要实现自动获取关键词的功能,大概可以分成三步 1,通过分词算法将标题和内容分别进行分割,提取出关键词和频度。当前主要的两个算法是中科院的ICTCLAS和隐马尔可夫模型。但这两个都太高端,有一定的门槛,且都是只支持C++/JAVA。基于PHP的当前有两个是值得推荐的PSCWS和HTTPCWS。 SCWS于2008-03-08发布1.0.0 正式版,到现在最新版本已经到了1.
阅读全文
摘要:1. sys_getloadavg()sys_getloadavt()可以获得系统负载情况。该函数返回一个包含三个元素的数组,每个元素分别代表系统再过去的1、5和15分钟内的平均负载。与其让服务器因高负载宕掉,不如在系统负载很高时主动die掉一个脚本,sys_getloadavg()就是用来帮你实现这个功能的。 不过很遗憾,该函数在windows下无效。2. pack()Pack()能将md5()返回的32位16进制字符串转换为16位的二进制字符串,可以节省存储空间。3. cal_days_in_month()cal_days_in_month()能够返回指定月份共有多少天。4. _()Wor
阅读全文
摘要:解决方法是在session_start()之后,字符输出之前写上header("Cache-control: private"); 网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:(1) 打开新窗口 值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:Ca
阅读全文
摘要:/*/mootools版本要求:mootools1.4以上調用并顯示普通內容的方法:Dilog({tit:'這是標題',htm:'這是內容<br>This should be big enough?'});調用框架頁面的方法:Dilog({tit:'這是標題',htm:'http://7di.net',iframe:'yes',cov:true});/*///核心代碼:var Dilog=function(o){ document.getElement('body').setStyle(
阅读全文
摘要:效果演示:源代码:<script style="text/javascript" src="https://ajax.googleapis.com/ajax/libs/mootools/1.4.1/mootools-yui-compressed.js"></script></head><body id='a'><h2 class='a'>Single images</h2><div id='bsfdimg' style='
阅读全文