2012-01-22 15 views
1

私はphpclasses.orgのCSVスクリプトを使用しています。これは、テーブル/その他のテーブルから列名と列値を取得し、CSVを作成します。改行は既に削除されていませんか?

私には理解できないことが1つあります。

ここで私が見ているコードの一部です:私はrtrimがあまりにも新しいライン(\ n)を削除すると思っ

$row[$key] = str_replace(',',' ',rtrim($row[$key])); //replaces commas with empty spaces from the trimmed value 
$row[$key] = str_replace("\015\012",' ',$row[$key]); 

:私が思ったんだけど2行は

function createcsv($tablename){ 

    $rs = $this->SelectAll($tablename); 
    $rs1 = $this->SelectAll($tablename); 
    if($rs){ 
     $string =""; 
     /// Get the field names 
     $fields = mysql_fetch_assoc($rs1); 
     if(!is_array($fields)) 
      return; 
     while(list($key,$val) =each($fields)) { 
      $string .= $key.','; 
     } 
     $string = substr($string,0,-1)."\015\012"; //removes last and comma and adds a newline 
     /// Get the data 
     while($row = mysql_fetch_assoc($rs)) { 
      while(list($key,$val) =each($row)){ 
       $row[$key] = strip_tags(html_entity_decode($row[$key])); //strips tangs from the html decoded value 
       $row[$key] = str_replace(',',' ',rtrim($row[$key])); //replaces commas with empty spaces from the trimmed value 
       $row[$key] = str_replace("\015\012",' ',$row[$key]); 
      } 
      $string .= (implode($row,","))."\015\012"; 
     } 
      echo $string; 

     //$fp = fopen($this->path.$tablename.".csv",'w'); 
     //fwrite($fp,$string); 
     //fclose($fp); 
    } 

} 

です...なぜ2行目は$row[$key] = str_replace("\015\012",' ',$row[$key]);が使われていますか?

答えて

2

rtrimは、文字列の末尾(r = "right")から改行を削除します。あなたが引用した行は、文字列のどこにでもそれらを削除します。あなたは親切にあなたの質問にリンクされたページを見てみると

2

、私はそれがいずれかを削除しないと結論付けることができ、

ので、文字列の終わりから

を読むことができます文字列の他の部分からの新しい行。

関連する問題