若问生涯原是梦,除梦里,没人知。

  • 2015-12-25

    定时运行任务对于一个网站来说,是一个比较重要的任务,比如定时发布文档,定时清理垃圾信息等,现在的网站大多数都是采用PHP动态语言开发的,而对于PHP的实现决定了它没有Java和.Net这种AppServer的概念,而http协议是一个无状态的协议,PHP只能被用户触发,被调用,调用后会自动退出内存,没有常驻内存。

    >>More

    #php #定时任务
  • 2015-12-25

    ##获取IP地址

    <?php
    function get_client_ip(){
        if (isset($_SERVER)) {
            if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
                $realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
            } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
                $realip = $_SERVER['HTTP_CLIENT_IP'];
            } else {
                $realip = $_SERVER['REMOTE_ADDR'];
            }
        } else {
            if (getenv("HTTP_X_FORWARDED_FOR")) {
                $realip = getenv( "HTTP_X_FORWARDED_FOR");
            } elseif (getenv("HTTP_CLIENT_IP")) {
                $realip = getenv("HTTP_CLIENT_IP");
            } else {
                $realip = getenv("REMOTE_ADDR");
            }
        }
        return $realip;
    }
    
    echo $ip = get_client_ip();
    ?>
    

    >>More

    #php #ip
  • 2015-12-23

    ##正则表达式是什么?

    正则表达式只是一个字符串。没有长度限制,但是,这样的正则表达式长度往往较短。如下所示是一些正则表达式的例子:

    • I had a \S+ day today
    • [A-Za-z0-9-_]{3,16}
    • \d\d\d\d-\d\d-\d\d
    • v(\d+)(.\d+)*
    • TotalMessages=”(.*?)”
    • <[^<>]>

    >>More

    #正则表达式
  • 2015-12-21

    Awesome Machine Learning Awesome

    A curated list of awesome machine learning frameworks, libraries and software (by language). Inspired by awesome-php.

    If you want to contribute to this list (please do), send me a pull request or contact me @josephmisiti

    For a list of free machine learning books available for download, go here.

    >>More

    #机器学习
  • 2015-12-18

    ###俄罗斯篇

    #视频
  • 2015-12-18

    ##数组的基本方法如下

    ####1. concat()

    该方法用于连接2个或者多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

    语法:arrayObject.concat(array1,array2,....arrayx);

    连接多个数组,使用逗号隔开;

    比如如下代码演示:

    var arr1 = [1,2,3],
        arr2 = [4,5,6],
        arr3 = [7,8,9,1,2,3];
    console.log(arr1.concat(arr2,arr3)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3]
    console.log(arr1); // [1,2,3]
    console.log(arr2); // [4,5,6]
    console.log(arr3); // [7,8,9,1,2,3]
    

    >>More

    #Javascript #Array
  • 2015-12-17
    /**
     * 获取文件夹下所有文件
     * @param $directory 需要获取的文件夹
     * @param bool $recursive 是否递归获取子文件夹
     * @return array
     */
    function directoryToArray($directory, $recursive = false) {
        $array_items = array();
        if(!is_dir($directory)) return "$directory folder does not exist";
        if ($handle = opendir($directory)) {
            while (false !== ($file = readdir($handle))) {
                if ($file != "." && $file != "..") {
                    if (is_dir($directory. "/" . $file)) {
                        if($recursive) {
                            $array_items = array_merge($array_items, directoryToArray($directory. "/" . $file, $recursive));
                        }
                        $file = $directory . "/" . $file;
                        $array_items[] = preg_replace("/\/\//si", "/", $file);
                    } else {
                        $file = $directory . "/" . $file;
                        $array_items[] = preg_replace("/\/\//si", "/", $file);
                    }
                }
            }
            closedir($handle);
        }
        return $array_items;
    }
    
    //调用
    $files = directoryToArray('../project/353438199e',true);
    var_dump($files);
    

    php5.3新增了一些新的方法来实现,如RecursiveIteratorIteratorscandir

    #php #文件夹
  • 2015-12-17

    如果更新多条数据为不同的值,可能很多人会这样写:

    foreach ($display_order as $id => $ordinal) {
        $sql = "UPDATE categories SET display_order = $ordinal WHERE id = $id";
        mysql_query($sql);
    }
    

    即是循环一条一条的更新记录。一条记录update一次,这样性能很差,也很容易造成阻塞。
    那么能不能一条sql语句实现批量更新呢?
    mysql并没有提供直接的方法来实现批量更新,但是可以用case when来实现。

    UPDATE mytable
        SET myfield = CASE id
            WHEN 1 THEN 'value'
            WHEN 2 THEN 'value'
            WHEN 3 THEN 'value'
        END
    WHERE id IN (1,2,3)
    

    >>More

    #mysql #update