PHPä¸file_get_contentså½æ°è·åURLæ件å 容æ¶ï¼å¸¦BOMçutf-8ï¼ç¨json_decode() è¿ånullçé®é¢ã
ç½ä¸æäºç§å¤çæ¹æ³ï¼
1ãæ£å
if(preg_match('/^\xEF\xBB\xBF/',$data))   //å»é¤å¯è½åå¨çBOM
{
   $data=substr($data,3);
}
Â
2ãèªå¨æ£æµç®å½ä¸æ件并移é¤BOM
 <?php
if (isset($_GET['dir'])){ //config the basedir
ãã$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);
}
?>
Â
 æ¬äººåèä¸é¢äºç§æ¹æ³ï¼åæ æã
äºæ¯æ file_get_contentså¾å°çå 容ï¼æµè§å¨ä¸æ¾ç¤ºçï¼å¤å¶åºæ¥ï¼å¹¶ç²è´´è¿Netbeans空ç½PHPæ件ä¸ï¼åç°æçBOMå å®¹æ ¹æ¬ä¸è³3个å符ããã
äºæ¯ä¿®æ¹å¦ä¸ï¼
ãããã//ç±»å ¶ä»æ件ï¼ä¸ç¨ç
Â
   public static function checkBOM($contents) {       Â
       $j=0;
       for($i=0;$i<strlen($contents);$i++){
           $charset = ord(substr($contents, $i, 1));
           if($charset==239 || $charset==187 || $charset==191 ){
               $j++;
           }
       }
       $contents = substr($contents, $j);
       return $contents;
   }
ãããã//ç±»å ¶ä»æ件ï¼ä¸ç¨ç
Â
è°ç¨é¡µï¼
$data = file_get_contents(fileURLï¼;
$data = func::checkBOM($data);   //å»é¤å¯è½åå¨çBOM
$data = json_decode($data, true);
è¿æ ·å°±OKäº