AK Footprints

always be together

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
  • php页面输出命令—-echo()

    程序代码 程序代码

    <?php
    echo “Hello World”;           //最简单的用法,同ASP中的response.write “Hello World”;

    echo “This spans
    multiple lines. The newlines will be
    output as well”;                            //同上,虽然文字断行了,但显示效果跟不分行的相同.

    echo “Escaping characters is done \”Like this\”.”;         //加入转义字符,为了使双引号”能正确显示出来.

    // You can use variables inside of an echo statement
    $foo = “foobar”;
    $bar = “barbaz”;

    echo “foo is $foo”;        // 显示结果foo is foobar,变量与字符串混排,我们期待的效果.

    // You can also use arrays
    $baz = array(”value” => “foo”);

    echo “this is {$baz['value']} !”;       // 显示结果this is foo !  数组与字符串混排,我们期待的效果.

    // Using single quotes will print the variable name, not the value
    echo ‘foo is $foo’; // 当使用单引号时,变量也将原样照印,显示结果 foo is $foo

    // If you are not using any other characters, you can just echo variables
    echo $foo;          // foobar
    echo $foo,$bar;     // foobarbarbaz

    //最有用的echo用法,使用<<<加上标识符来开始一段输出,引号不用转义表示,可直接输出.记得结尾要用同样的标识符结束

    echo <<<END
    This uses the “here document” syntax to output
    multiple lines with $variable interpolation. Note
    that the here document terminator must appear on a
    line with just a semicolon. no extra whitespace!
    END;

    // Because echo does not behave like a function, the following code is invalid.
    ($some_var) ? echo ‘true’ : echo ‘false’;

    // However, the following examples will work:
    ($some_var) ? print ‘true’ : print ‘false’; // print is also a construct, but
    // it behaves like a function, so
    // it may be used in this context.
    echo $some_var ? ‘true’: ‘false’; // changing the statement around
    ?>

  • 0 Comments
  • Filed under: Kevin