AK Footprints

always be together

昨天升级了博客,从2.6升级到3.0.1,升级后原有的中文文章全部乱码,于是想到肯定是mysql的问题,便开始检查编码。很奇怪的是,从代码到数据库端都是utf8,这是我好久以前就统一了的,而且因为以前吃过这方面的亏,自问还是很注意编码的。
尝试了无数中mysql的常见解决方案,未果。开始查看wordpress的配置文件和数据库连接文件,发现新版中已经默认强制统一编码为utf8了,这就更没理由出问题了呀…
最后只能死马当活马医,把wp-config.php中的默认编码utf8改成gbk,乱码。再把gbk删掉,改成留空,居然不乱码了!也许只能解释成正正得负?不管怎样,把这个解决方法列出来,供同样问题的人参考。如果数据库一贯编码没问题,却乱码,可以考虑删掉强制编码为utf8的配置。

  • 0 Comments
  • Filed under: Kevin
  • mysql对中文的支持真是比较差,一旦库里面既有中文数据,又有英文数据,排序出来就是乱七八糟的. 在网上搜了一下,大家给出的几个解决方案都不太好用.

    这里给出一个土一点的解决方法,比较适合已经有大量数据,并且很少有新数据加入的情况. 在数据导入前,在excel或者别的软件里把数据排序好,这些软件一般都对多语言支持比较好,排序好后, 加一列,这列为id,顺序递增,然后导入mysql. 以后,需要按字母顺序排序的时候, 直接按id排序即可. 如果要插入数据, 可用相应的算法保证插入时不打乱排序.

  • 0 Comments
  • Filed under: Kevin
  • 好久没动手写代码,前一段用Xajax和flash插件多一些,前天一动手,问题百出,花了一夜时间才搞定,记录下来,给下次使用参考.

    1.JW Image Rotator的使用: JW Image Rotator不仅可以当成单一的图片切换容器,还把整个页面都放在JW Image Rotator里,只让其中一部分图片切换. 这个功能很贴心, 也是一般的商业网站需要的, 大家平常看到的flash图片切换展示的首页, 都可以用这个思路实现, 以后可以多用用.代码区别就在于, 给插件加个属性:

    var so = new SWFObject(‘/scripts/imagerotator.swf’,'tour_txt’,'XXX’,'WWW’,’8′);
    so.addParam(‘allowscriptaccess’,'always’);
    so.addParam(‘allowfullscreen’,'true’);
    so.addVariable(‘width’,'YYY’);
    so.addVariable(‘height’,'ZZZ’);

    注意加粗的两行,如果要让页面的一部分切换,而不是整个页面切换的话,把这里的值改的跟上面XXX,WWW不一样即可.

    2.如果用上面的方法建立了一个部分内容切换的flash页面,接下来的问题就是flash文件编译,NND,当时我就栽在了这上面,花了两个小时,就是找不到问题,最后才发现是flash编译出了问题,导出的swf文件本身是死的. 从头说起, 不知是所有带外部com组件的flash导出时都有这个问题,还是我遇到了比较罕见的情况(RP不好),我一开始在公司电脑上做的源文件,导出没问题.拷回家改了一些内容后,再导出就死活都不运行了,页面可以显示,但其中flash切换的部分怎么都没法运行.最后把文件源文件重新做了一遍,导出,成功…看来以后在哪做的东西最好在哪做完. 如果要换地方做,要把文件夹拷全,多拷点没事,别少拷了.

    3. 顺便写一下在flash建透明按钮的问题. 其实很简单,随便建一个想要的形状,转换成按钮,进入按钮内部,把弹起帧拖到点击帧,搞定.

    4. Carousel组件的使用, 记得按照官方教程的要求,把5个js文件和至少1个css文件包含进页面,这次因为忘记包含那几个js文件和css(很重要),搞的效果一直出不来.

    5. 如果只想使用Carousel组件的css效果,那就不需要包含文件了,只要把需要用的css拷进文件就可以了.

    6. 这次相册做了个两页的分页,用的链接+ajax,效果不错,如果以后文件特别多了,可以考虑弄个后台管理一下,把图片地址入库.

    谨以此文纪念我跟老婆整整奋斗的一夜,但愿以后别熬了。。。

  • 1 Comment
  • Filed under: Kevin
  • 今天在研究CodeIgniter 1.6.3和Xajax 0.2.5整合时, 意外发现了xajax 0.2.5版本的一个bug.

    xajax 0.2.5版本的主文件xajax.inc.php第747行有一个变量sResponse是没有定义的,在php 4.2以上版本默认关闭register_globals的情况下,会报错.

    解决办法:
    1.治本的方法,修改xajax.inc.php文件747-755行,引自http://community.xajaxproject.org/viewtopic.php?id=4630

    if (is_string($oResponse)) {
    $oNewResponse = new xajaxResponse();
    $oNewResponse->addAlert(“No XML Response Was Returned By Function $sFunctionName.\n\nOutput: “.$oResponse);
    $oResponse = $oNewResponse;
    }
    else if ($sPreResponse != “”) {
    $oNewResponse = new xajaxResponse($this->sEncoding, $this->bOutputEntities);
    $oNewResponse->loadXML($sPreResponse);
    $oNewResponse->loadXML($oResponse);
    $oResponse = $oNewResponse;
    }

    2.治标的方法,在PHP文件头加上error_reporting(E_ALL   &   ~E_NOTICE);

    可以忽略掉PHP的警告提示,程序就可以顺利运行了.

    留此存照

    —-EOF—-

  • 0 Comments
  • Filed under: Kevin
  • PHP强制下载

    从网上找到一个简单的版本:

    <?php

    $filename = $_GET['file'].”.filetype”;
    header(“Content-Type: application/force-download”);
    header(“Content-Disposition: attachment; filename=”.basename($filename));
    readfile($filename);
    ?>

  • 0 Comments
  • Filed under: Kevin