1. 程式人生 > >win 環境下報錯 Namespace declaration statement has to be the very first

win 環境下報錯 Namespace declaration statement has to be the very first

ica found space all fopen 頭文件 bstr spa while

啟動 start_for_win.bat 的時候報錯 Namespace declaration statement has to be the very first ,這是由於 bom 的原因,主要由於線上編輯的時候用了記事本修改保持造成問題,只要去掉Bom 就OK,

去bom頭文件

<?php
if (isset ( $_GET [‘dir‘] )) { //config the basedir
$basedir = $_GET [‘dir‘];
} else {
$basedir = ‘.‘;
}
$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) { // BOM 的前三個字符的ASCII 碼分別為 239 187 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 );
}

win 環境下報錯 Namespace declaration statement has to be the very first