zoukankan      html  css  js  c++  java
  • PHP去bom头

    <?php
    if (isset($_GET['dir'])){
    $basedir=$_GET['dir'];
    }
    else{
    $basedir = '.';
    }
    $auto = 1;

    checkdir(
    $basedir);

    function checkdir($basedir){
    if ($dh = opendir($basedir)) {
    while (($file = readdir($dh)) !== false) {
    if ($file != '.' && $file != '..'){
    if (!is_dir($basedir."/".$file)) {
    echo "filename: $basedir/
    $file ".checkBOM("$basedir/$file")." <br>";
    }
    else{
    $dirname = $basedir."/".
    $file;
    checkdir(
    $dirname);
    }
    }
    }
    closedir($dh);
    }
    }

    function checkBOM ($filename) {
    global $auto;
    $contents = file_get_contents($filename);
    $charset[1] = substr($contents, 0, 1);
    $charset[2] = substr($contents, 1, 1);
    $charset[3] = substr($contents, 2, 1);
    if (ord($charset[1]) == 239 && ord($charset[2]) == 187 &&
    ord($charset[3]) == 191) {
    if ($auto == 1) {
    $rest = substr($contents, 3);
    rewrite (
    $filename, $rest);
    return ("<font color=red>BOM found,
    automatically removed.</font>
    ");
    }
    else {
    return ("<font color=red>BOM found.
    </font>
    ");
    }
    }
    else return ("BOM Not Found.");
    }

    function rewrite ($filename, $data) {
    $filenum = fopen($filename, "w");
    flock($filenum, LOCK_EX);
    fwrite($filenum, $data);
    fclose($filenum);
    }
    ?>

  • 相关阅读:
    构造函数作为友元函数的参数
    引用调用
    分块查找
    折半查找
    c++中map按key和value排序
    STL之map学习实例
    STL之stack
    STL之map
    STL之string
    STL之template类模板
  • 原文地址:https://www.cnblogs.com/ShepherdIsland/p/php_del_bom.html
Copyright © 2011-2022 走看看