标签: php

  • PHP 静态服务器

    一直用 python 的 python -m SimpleHTTPServer 8080 的形式来做简单的静态服务器。

    原来 PHP 也有类似的工具,如 php -S localhost:8080,支持 PHP 文件和 POST 哦。

  • 扫除 PHP get_headers 带来的困扰

    前段时间在使用 PHP 中的 get_headers 来获取头信息时,发现其中某个链接会返回多个 Location ,然后就疑惑了,难道 301 重定向这些可以同时多个?按理说只能重定向一次,且前后不能有输出?这到底是怎么一回事呢?

    headers
    (更多…)

  • NULL 与 “NULL”

    向往数据库中插入数据,其中有些项可能为空(NULL),直接的查询语句如下:

    -- content text
    -- parent int
    insert into msg(content, parent) values("Test message", NULL);
    

    不过,需要考虑的是,上面的parent不一定为空,而是根据情况判断。当需要为空时,插入到数据库中的是NULL。所以需要采用变量的方式而不是硬coding,如:

    $query = "insert into msg(content, parent) values('$content', $parent)";
    

    在这里折腾了好久,因为一直通不过,后来才发现在判断该插入空的时候变量的PHP代码不正确。

    # wrong
    parent = NULL;
    # rightparent = "NULL";
    

    PHP中的NULL代表的是无值(no value),而实际上数据库中需要的是“NULL”,故应赋以字符串值而不是无值。

  • 添加页内跳转

    页内跳转,在我这里,其实就是锚跳转(包括回到顶部、直达底部、阅读评论这三个),只是做了些美化和 JS 效果而已,最终效果见页面右侧(单页和非单页有所不同)。

    一开始,我是直接把 HTML/PHP 代码放进 footer.php 文件中的,后来采用 hook 的方法。虽说,就得到的 HTML 结构来说,可能不是非常好;但个人感觉比直接修改 footer.php 好。

    HTML/PHP 代码

    <?php
        // add updown access, needs hook wp_footer() in footer.php
        function up_down() {
    ?>
        <div id="updown">
            <a href="#" title="返回顶部" id="goUp"></a>
            <?php if(is_single()):?>
            <a href="#comments" title="阅读评论" id="goComments"></a>
            <?php endif;?>
            <a href="#footer" title="直达底部" id="goDown"></a>
        </div>
    <?php
        }
        add_action('wp_footer', 'up_down');
    ?>
    

    使用这种方法,需要 footer.php 文件中有调用到 wp_footer() 函数,否则是无法 hook 的。
    (更多…)

  • 都是换行惹的祸

    在使用以下 PHP 代码时遇到了些问题。

    # list.txt
    /*
        Be More.mp3
        Hello.mp3
        Drift Away.mp3
        Panda Sneeze.mp3
    */
    lines = file("list.txt");
    foreach (lines as line){
        echo filesize(line);
        // code above get results like following except the last line:
        // Warning: filesize() [function.filesize]: stat failed for songs/Hello.mp3 in ...
        # echo filesize("songs/Hello.mp3");  // this'll be ok
    }
    

    (更多…)

  • PHP中的UTF-8中文长度和截断

    直接看代码简单:

    <?php
        str = "中文a数字1";
        printf("%d<br />", strlen(str));                #输出14,utf8中中文长度为3
        printf("%d<br />", mb_strlen(str, "UTF-8"));    #输出6
        printf("%s<br />", substr(str, 0 , 4));         #输出为“中�”
        printf("%s<br />", mb_internal_encoding());      #获取当前字符编码,常默认西欧编码“ISO-8859-1”
        mb_internal_encoding("UTF-8");                   #设定字符编码为utf8
        echo mb_substr($str, 0, 4);                      #输出为“中文a数”
    ?>