标签 代码段 下的文章

MYSQL 从更换域名复习到的replace

还是手贱去买了那个域名,接下来我们要做的就是更换那些连接了,如果不使用SQL,更换是非常费劲的一件事情,而现在可以用语句来解决了,首先找到大致的位置,比如这次,我们找到数据库的表typecho_contents里记录的就是文字内容,可是如果用UPDATE ... WHERE ..=..用的是完全匹配,要用LIKE吗?我以前似乎也不是这样做的,去看了一下以前搬家的博文,看到了replace(),如法炮制。

Update 表名 SET 要替换的列=REPLACE(要替换的列,被替换的字符,替换后的字符)

于是用

UPDATE typecho_contents set text=replace(text, 'test.xsky.me', 'test.codesky.me');
UPDATE typecho_options set text=replace(value, 'learn.xsky.me', 'codesky.me');
UPDATE typecho_contents set text=replace(text, 'learn.xsky.me', 'codesky.me');

- 阅读剩余部分 -

C 删除输入中多余空格

做到这样一题,是将其中多个空格替换为一个空格,回想起来PHP也有类似需求,暂时先mark一下这个方法。

我的想法是根据空格前面是否存在空格来控制空格的输出。(书中答案貌似更简练一些,直接加一个变量记录这次输出的值,用那个值来对比)

#include <stdio.h>

int space = 0;

int c;

main(void)
{
    while ((c = getchar()) != EOF) {
        if (c == ' ' && !space) {
            space = 1;
            putchar(c);
        } else if (c != ' ') {
            space = 0;
            putchar(c);
        }
    }

    return 0;
}

PHP中可以用转为数组-删除数组空白元素-转为字符串的方法,首尾部分空格可以用trim()处理

CSS 固定div不随屏幕滚动

固定某一元素不滚动感觉还是挺有用的,一侧边栏不动而滚另一侧,固定导航条,而固定footer则比较少见,关于footer,还要做一些特殊处理,之后会有说明。

当然,感觉代码还不好,需要改进=A=

左右比较简单,我们利用floatposition的联合就能实现,下面代码中所实现的是左边栏固定。

演示

- 阅读剩余部分 -

C 一个输入输出程序使各种符以可见方式显示

题目如下:

编写一个将输入复制到输出的程序,并将其中的制表符替换为t,把回退符替换为b,把反斜杠替换为\。这样可以将制表符和退回符以可见的方式显示出来。

首先我傻呵呵的被坑,因为这是在getchar()练习中,很自然的想到了putchar(),结果这货只能输出一个字符啊,怎么破,搜了一下,用printf()就好了……感觉简直坑。

- 阅读剩余部分 -

C 输入输出getchar()与putchar()

getchar()putchar()其实感觉也挺神奇,因为这货是读/写一个字符,书的引言就说C语言没有处理整个数组或字符串的操作,暂时也只看到这个,感觉还挺好玩的。

书上给的代码是:

#include <stdio.h>

main(void)
{
    int c;

    c = getchar();

    while (c != EOF) {
        putchar(c);
        c = getchar();
    }

}

- 阅读剩余部分 -

EOF到底是什么

EOF到底是什么,从我接触至今困惑了好久,于是去搜了一下,在阮一峰的博客找到了答案,算比较好懂的,不得不说这是个好博客=A=

EOF在书上,看了两本(才两本=A=),解释都是这样的:

EOF , end of file, 文件结束

啥,为什么文件结束会有个值,他要拿来干嘛?

而且在C中以前尝试过输出,输出结果为-1,这又是什么个情况?

- 阅读剩余部分 -

PHP 遍历目录实例

做文件管理的基础设施建设吧,嗯……反正还是打到打不开的思路来的。
这里为了后续方便,忽略了本目录.的显示,然后对于根目录不显示上一级的..

            $num = 0;    // 统计子目录和文件个数
            $problem = FALSE;
            $fileList = [];

            if (!empty($_GET['route'])) 
                $dirname = $_GET['route'];
            else 
                $dirname = 'upload';

            $dir_handle = @opendir($dirname);

            if (!file_exists($dirname)) 
                echo "<script>window.location.href='"."index.php';</script>";
            
            if (!$problem) {
                while ($file = readdir($dir_handle)) {
                    $dirFile = $dirname.'/'.$file;
                    if ($dirname == 'upload' && $file != '.' && $file != '..') {
                        $fileList[$num] = array('file' => $file, 'filesize' => filesize($dirFile), 'filetype' => filetype($dirFile), 'filemtime' => date('Y/n/t',filemtime($dirFile)));
                        if (is_dir($dirFile)) {
                            $fileList[$num]['filesize'] = '';
                        }
                        $num++;
                    } elseif ($dirname != 'upload' && $file != '.') {
                        $fileList[$num] = array('file' => $file, 'filesize' => filesize($dirFile), 'filetype' => filetype($dirFile), 'filemtime' => date('Y/n/t',filemtime($dirFile)));
                        if (is_dir($dirFile)) {
                            $fileList[$num]['filesize'] = '';
                        }
                        $num++;
                    }
                }
            }

            /*
            // 统计文件夹大小
            function dirSize($dir) {
                $dir_size = 0;

                if ($dirhandle = @opendir($dir)) {
                    while ($filename = readdir($dirhandle)) {
                        if ($filename != '.' && $filename != '..') {
                            $subFile = $dir.'/'.$filename;
                            if(is_dir($subFile)) 
                                $dir_size += dirSize($subFile);
                            if(is_file($subFile)) 
                                $dir_size += filesize($subFile);
                        }
                    }
                    closedir($dirhandle);
                    echo 'Hello';
                    return $dir_size;
                }
            }
            */

            @closedir($dir_handle);
            return $fileList;

PHP 浏览器已知文件类型下载写法

header()真的是个好东西,下载的本体其实就是把路径给出来,未知格式浏览器无解自然会弹出下载框,已知格式怎么破呢?比如html,这不就成了直接打开了吗?

    header('Content-Disposition: attachment; filename="'.$filename.'"');
    header('Content-Length: '.filesize($filename));

    readfile($filename);

加上header()之后读取文件,收工。

PHP 自写函数删除文件夹

文件类中经常用到@忽略报错同时告诉你:打到打不开未知,比如这次,用递归一直一直来,最终还是能滚出来的。

function delDir($directory) {
    if(file_exists($directory)) {
        if($dir_handle = @opendir($directory)) {
            while($filename = readdir($dir_handle)) {
                if($filename != '.' && $filename != '..') {
                    $subFile = $directory . '/' .$filename;
                    if(is_dir($subFile))
                        delDir($subFile);
                    if (if_file($subFile))
                        unlink($subFile);
                }
            }
            closedir($dir_handle);
            rmdir($directory);
        }
    }
}

在目录菜单的时候,会生成一个.的目录和..的目录,.代表此目录,..包括上一级目录,遍历的时候要把他们俩除外。