+ -
当前位置:首页 → 问答吧 → 美无处不在

美无处不在

时间:2008-09-16

来源:互联网


    <?php

    function dealdir($dir)
    {
        if (is_dir($dir)) {
            if ($dh = opendir($dir)) {   
                while (($filename = readdir($dh)) !== false) {
                    if($filename !=="." & $filename!==".."){
                        if(filetype($dir . $filename) == "file"){
                         deal($dir . $filename);
                        } elseif (filetype($dir . $filename) == "dir"){   
                            echo "filename: $filename : filetype: " . filetype($dir . $filename) . "\n";
                            dealdir($dir.$filename."/");
                        }
                    }
                }   
            closedir($dh);
            }
        }
    }

    function deal($filename)
    {
        $r = "/\/\*(.*?)\*\//is";
        $ri="/\/\/( .*?)\\n/is";    //$filename="c.php"
        $handle = fopen($filename,"r");
        $content = fread($handle,filesize($filename));
        fclose($handle);
        $newcontent = preg_replace($r," ",$content);
        $newcontent = preg_replace($ri," ",$newcontent);
        @unlink($filename);
       
        if (!$handle = fopen($filename, 'a')) {   
            echo "不能打开文件 $filename";   
            exit;
        }   
       
        // 将$newcontent写入到我们打开的文件中。
        if (fwrite($handle, $newcontent) === FALSE) {   
            echo "不能写入到文件 $filename";   
            exit;
        }   
        echo "成功地将 $somecontent 写入到文件$filename";
        fclose($handle);   
    }  

    ?>



作者: chinablue   发布时间: 2008-09-16

代码高亮一下吧!有点难看啊!

作者: liexusong   发布时间: 2008-09-16

这才叫艺术之美

作者: ilsanbao   发布时间: 2008-09-17

...个人觉得这段代码实在是太乱了
首先发帖不规范,没有高亮
第二代码没有被<?php ?>包围
第三没有按照编码规范,缩进,空格,注释一团糟
改了下,高亮,之后效果好多了



<?php

function dealdir($dir)
{
    if (is_dir($dir)) {
        if ($dh = opendir($dir)) {   
            while (($filename = readdir($dh)) !== false) {
                if($filename !=="." & $filename!==".."){
                    if(filetype($dir . $filename) == "file"){
                     deal($dir . $filename);
                    } elseif (filetype($dir . $filename) == "dir"){   
                        echo "filename: $filename : filetype: " . filetype($dir . $filename) . "\n";
                        dealdir($dir.$filename."/");
                    }
                }
            }   
        closedir($dh);
        }
    }
}

function deal($filename)
{
    $r = "/\/\*(.*?)\*\//is";
    $ri="/\/\/( .*?)\\n/is";    //$filename="c.php"
    $handle = fopen($filename,"r");
    $content = fread($handle,filesize($filename));
    fclose($handle);
    $newcontent = preg_replace($r," ",$content);
    $newcontent = preg_replace($ri," ",$newcontent);
    @unlink($filename);
   
    if (!$handle = fopen($filename, 'a')) {   
        echo "不能打开文件 $filename";   
        exit;
    }   
   
    // 将$newcontent写入到我们打开的文件中。
    if (fwrite($handle, $newcontent) === FALSE) {   
        echo "不能写入到文件 $filename";   
        exit;
    }   
    echo "成功地将 $somecontent 写入到文件$filename";
    fclose($handle);   
}  

?>


作者: 十七   发布时间: 2008-09-17

呵呵,十七还挺认真,辛苦了!

作者: RICHARD   发布时间: 2008-09-18

谢谢 各位大大   

作者: chinablue   发布时间: 2008-09-18

楼主的代码作用是将php代码里面的注释去掉吧(当然js文件也适用)。
粗粗阅读了一下,觉得代码还有很多地方需要改进。
1,你要判断一下是否是php代码,如果是html文件就不能这么干了。另外如果在PHP文件中有这么一条语句
$str ='/*ssss*/';
那么你的程序会将字符串里面的内容干掉,显然这个不是你期望的结果之一。
2,用file_get_contents和file_put_contents来代替fopen和fwrite能提高很多效率,另外就算你要用fopen也不需要用unlink将原文件删掉然后又重新创建一个文件,这很影响效率。
3,preg_replace只需要调用一次就可以了,将表达式用数组传入。

作者: sentrychen   发布时间: 2008-09-18

反响不错啊

作者: flymouse   发布时间: 2008-09-23

我是小菜鸟   谢谢大家那么热心  想不到啊

作者: chinablue   发布时间: 2008-09-26

乱码!``

作者: 额头客人   发布时间: 2008-10-07

你的代码最美

作者: abcwuwuwu   发布时间: 2009-08-27

很美11

作者: romantica   发布时间: 2009-08-29