从json文件中删除注释行

时间:2014-03-14 16:17:30

标签: php json comments

我的json文件中有这样的评论

{
    // Texts
    "txtloggedas": "U bent aangemeld als",
    "txtlogin": "Aanmelden",

如何使用php代码删除规则//文本? (对于我文件中的所有评论)。因为json无效。

2 个答案:

答案 0 :(得分:1)

通常,preg_match是检查字符的绝佳功能,在您的示例中,您必须检查//。假设您的JSON保存在某个文件中,也许这段代码片段可以帮助您:

<?php
$rows = file("json.txt");    

foreach($rows as $key => $row) {
    if(preg_match("/\/\//", $row)) {
        unset($rows[$key]);
    }
}

file_put_contents("fixedjson.txt", implode($rows));

?>

答案 1 :(得分:1)

你也可以试试这个:

<?php
 $file = "test.json";
 $str = file_get_contents($file);
 while(strpos($str,'//')){ //---- while in text exist // do ----
  $a = strpos($str,'//'); //---- first position // ----
  $b = strpos($str,'"',$a); //--- first position of " in text ---
  if($b==0) {$b = strpos($str,'}',$a);} //--- if // at end of file  ---

  $s1 = substr($str,0,$a); //---- new string from start to // position ---
  $s2 = substr($str,$b); //--- string from first " to end of file ---

  $str = $s1.$s2; //---- new string without // ----
 }
 file_put_contents($file,$str); 
?>