标签 成品 下的文章

C 打印输入中单词长度的直方图

导言中的题目,昨天我勉强算实现了输出,不过效果其实很糟糕,还是没有考虑今天发的那几个问题,下载好答案之后就看了看,题目意思也明白了:

原话:

编写一个程序,打印输入中单词长度的直方图。水平方向的直方图比较容易,垂直方向的直方图则要困难一些。

实际上,他是要统计,比如hello有5个字母,我只输入hello 那么5中就输出1,类似的hello world在5中就输出2

我当时实际上只是很简单的直方图了,而没有考虑本身,所以是个错误的答案。

同时我还在想,我怎么知道单词有多长呢——答案很好的解决了这个问题。

- 阅读剩余部分 -

C 一行输出一个单词

貌似以前也看到有一道题是这样的,这里发现了思维不够严密,比如我是这么写的:

#include <stdio.h>

#define IN 1
#define OUT 0

main(void)
{
    int c, state;

    while ((c = getchar()) != EOF) {
        if (c == '\t' || c == ' ')
            printf("\n");
        else
            putchar(c);
    }

    return 0;
}

- 阅读剩余部分 -

CSS 固定div不随屏幕滚动

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

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

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

演示

- 阅读剩余部分 -

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 文件上传类实例

=A=其实是书上扒下来的,我觉得自己写一定会死=A=

这种高危产品不搞演示了,拆开来说一下好了。(个人理解,说不定有误)

<form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="route" value="<?php echo $route ?>">
    <input type="hidden" name="MAX_FILE_SIZE" value="100000">
    <input type="file" name="myfile">
    <input type="submit" value="上传文件">
</form>    

- 阅读剩余部分 -

curl获取QQ头像并缓存

这是M-Show中用到的一个最神奇的东西,其实我至今还是不会用,只是网上找到了类似的改了一下,顺便伪造来路这样防盗链机制就失效了=A=

演示

演示部分不包括缓存,所以载入会慢,为了良好的载入速度和不吃CPU(小新说的),缓存非常有必要,缓存的方法其实就是存到本地,判断是否已经获取,缓存完毕的重定向到本地的位置就好了=A=

- 阅读剩余部分 -