最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一個(gè)可以找出源代碼中所有中文的工具

 更新時(shí)間:2006年10月25日 00:00:00   作者:  
一個(gè)可以找出源代碼中所有中文的工具

填寫(xiě)需要查找的路徑$sf即可。

功能
1 找出所有中文
2 忽略注釋語(yǔ)句中的中文
3 可添加需要忽略的文件和文件夾
4 生成日志文件

如果您正發(fā)愁為自己的軟件更新語(yǔ)言包
請(qǐng)使用此工具。

我的例子:
http://127.0.0.1/tools/searchcn.php
http://127.0.0.1/tools/cnlog.txt
復(fù)制代碼 代碼如下:

<?php
set_time_limit(0);
ob_implicit_flush();

//注釋格式
$remark = array(
    array('//debug', "\r\n")
    , array('/**', '*/')
    , array('/*debug', '*/')
    , array('/*note', '*/')
    , array('//note', "\r\n")
);

//以下目錄和文件不被查詢
$filter = 'forumdata|config\.inc\.php|debug|test|readme|utilities|upgrade|\.tpl.php|index\.htm|\.lang.php';

//項(xiàng)目目錄
$sf = 'd:\\data\\labs\\develop\\dzhead\\';

//日志目錄
$logname = 'cnlog.txt';
$langfile = 'lang.php';


$log = fopen($logname, 'w');
fclose($log);

$lf = fopen($langfile, 'wb');
fwrite($lf, "\r\n\r\n\t'spilt' => '----------------------------------------------------',");
fclose($lf);

$lf = fopen($langfile, 'ab');


$ptag = '\\';

findfile($sf);
fwrite($lf, "\r\n);\r\n\r\n?>");
fclose($lf);
function findfile($sf){
    global $ptag, $logname, $filter, $lf;
    $log = fopen($logname, 'ab');
    global $remark;
    if(is_dir($sf)) {
        if($dh = opendir($sf)) {

            while(($file = readdir($dh)) !== false) {
                if($file == '.' || $file == '..') {
                    continue;    
                } elseif(filetype($sf.$file) == 'dir') {
                    findfile($sf.$file.$ptag);
                } elseif((preg_match('/\.php$/', $file) || preg_match('/\.htm$/', $file)) && !preg_match('/('.$filter.')/', $sf.$file)) {

                    $sfp = fopen($sf.$file, 'rb');
                    $buf = fread($sfp, filesize($sf.$file));
                    fclose($sfp);
                    foreach($remark as $v) {
                        $data = '';
                        while(count($strcut = explode($v[0], $buf, 2)) > 1) {
                            $data .= $strcut[0];
                            if(($strcut = explode($v[1], $strcut[1], 2)) > 1){
                                $buf = $strcut[1];
                            } else {
                                $buf = $strcut[0];
                                break;
                            }

                        }
                        $data .= $strcut[0];
                        $buf = $data;
                    }
                    $data = $buf;
                    $lines = 0;
                    $cn = $str = '';
                    $cns = 0;
                    $ldata = "\r\n\t'".str_replace('.', '_', $file)."' => '";
                    for($i = 0; $i < strlen($data); $i++){
                        $c = ord($data{$i});
                        if($c == 0x0A || $data{$i+1} == ''){
                            $lines++;
                            if(!empty($cn)){
                                $ldata .= "',";
                                $ldata = str_replace("\r\n\t'".str_replace('.', '_', $file)."' => '',", '', $ldata);
                                fwrite($lf, $ldata);
                                $cn = "\r\n$lines:".$cn;
                                $str .= $cn;
                                $cn = '';
                                $ldata = "\r\n\t'".str_replace('.', '_', $file)."' => '";
                            }
                        } elseif($c >= 0x81 && $c <= 0xFE) {
                            $c = ord($data{++$i});
                            if($c >= 0x40 && $c <= 0xFE) {
                                $cn .= $data{$i-1}.$data{$i};
                                $ldata .= $data{$i-1}.$data{$i};
                                while(($c = ord($data{++$i})) != 0x3C && $c != 0x0A && $c != 0x0D && $c != 0x27 && $c != 0x3E && $c != 0x3B && $c != 0x22 && $c != 0x3D && $c < 0x81) {
                                    $space .= chr($c);
                                }
                                $i--;
                                if(ord($data{$i+1}) < 0x81) {
                                    $cns++;
                                    $cn .= '$';
                                    $ldata .= "',\r\n\t'".str_replace('.', '_', $file)."' => '";
                                } else {
                                    $cn .= $space;
                                }
                                $space = '';
                            }
                        }
                    }
                    if($str != '') {
                        fwrite($log, "\n--".$sf.$file."----------------------- (共 $cns 處)");
                        echo "{$sf}$file (共 $cns 處)<br>";
                        ob_flush();flush();
                        $cns = 0;    
                    }
                    fwrite($log, $str);
                    $str = '';
                }
            }
        }
    }
    fclose($log);

}
?>

相關(guān)文章

  • 基于PHP讀取TXT文件向數(shù)據(jù)庫(kù)導(dǎo)入海量數(shù)據(jù)的方法

    基于PHP讀取TXT文件向數(shù)據(jù)庫(kù)導(dǎo)入海量數(shù)據(jù)的方法

    本篇文章小編為大家介紹,基于PHP讀取TXT文件向數(shù)據(jù)庫(kù)導(dǎo)入海量數(shù)據(jù)的方法。需要的朋友參考下
    2013-04-04
  • Swoole擴(kuò)展的6種模式深入詳解

    Swoole擴(kuò)展的6種模式深入詳解

    這篇文章主要介紹了Swoole擴(kuò)展的6種模式深入詳解,6種模式講解的很詳細(xì),有感興趣的同學(xué)可以跟著小編一起來(lái)研究下
    2021-03-03
  • php上傳文件常見(jiàn)問(wèn)題總結(jié)

    php上傳文件常見(jiàn)問(wèn)題總結(jié)

    這篇文章主要介紹了php上傳文件常見(jiàn)問(wèn)題總結(jié),基本上經(jīng)常碰到的問(wèn)題的處理都列了出來(lái),有需要的小伙伴參考下。
    2015-02-02
  • php之Smarty模板使用方法示例詳解

    php之Smarty模板使用方法示例詳解

    這篇文章主要介紹了php之Smarty模板的使用方法,需要的朋友可以參考下
    2014-07-07
  • PHP基于ip2long實(shí)現(xiàn)IP轉(zhuǎn)換整形

    PHP基于ip2long實(shí)現(xiàn)IP轉(zhuǎn)換整形

    這篇文章主要介紹了PHP基于ip2long實(shí)現(xiàn)IP轉(zhuǎn)換整形,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Laravel登錄失敗次數(shù)限制的實(shí)現(xiàn)方法

    Laravel登錄失敗次數(shù)限制的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Laravel登錄失敗次數(shù)限制的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Laravel5.5 動(dòng)態(tài)切換多語(yǔ)言的操作方式

    Laravel5.5 動(dòng)態(tài)切換多語(yǔ)言的操作方式

    今天小編就為大家分享一篇Laravel5.5 動(dòng)態(tài)切換多語(yǔ)言的操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • 使用 PHPMAILER 發(fā)送郵件實(shí)例應(yīng)用

    使用 PHPMAILER 發(fā)送郵件實(shí)例應(yīng)用

    以前的mail(),已經(jīng)不在流行,所以放上最近用的實(shí)例,留做回憶;需要的朋友可以參考下
    2012-11-11
  • PHP速成大法

    PHP速成大法

    本文主要是簡(jiǎn)單而全面的向大家介紹了一下php的相關(guān)知識(shí),php入門(mén)非常簡(jiǎn)單,稍微有點(diǎn)小基礎(chǔ)的小伙伴們一天就能入門(mén)。
    2015-01-01
  • yii2行為的方法如何注入到組件類(lèi)中詳解

    yii2行為的方法如何注入到組件類(lèi)中詳解

    這篇文章主要給大家介紹了關(guān)于yii2中行為的方法是如何注入到組件類(lèi)中去的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-08-08

最新評(píng)論

罗甸县| 常山县| 交城县| 阿拉尔市| 华宁县| 康乐县| 绥滨县| 马尔康县| 酒泉市| 鲁甸县| 通海县| 独山县| 图片| 宁国市| 绥宁县| 紫阳县| 湖南省| 芮城县| 黄龙县| 天峨县| 巢湖市| 麻江县| 赤峰市| 宾阳县| 松滋市| 贵定县| 五台县| 东辽县| 梁河县| 武邑县| 建德市| 县级市| 运城市| 大理市| 江孜县| 黑山县| 大悟县| 周口市| 安岳县| 南川市| 丽水市|