2011-08-02 14 views
2

私は行単位で読みたいですが、改行を扱いたくないので、削除して欲しいので、行の内容で終わるだけです。PHPは行単位で改行文字を除外することができますか?

だから、今、私の機能は次のとおりです。

function getProductCount($path) 
{ 
    $count = 0; 

foreach (file($path) as $name) { 
    if($name == "<product>\n") 
    { 
     $count = $count + 1; 
    } 
} 
     return $count; 
} 

しかし、理想的に私がしたいと思う:

function getProductCount($path) 
{ 
    $count = 0; 

foreach (file($path) as $name) { 
    if($name == "<product>") 
    { 
     $count = $count + 1; 
    } 
} 
     return $count; 
} 

は、あまりにも改行を削除するが方法ですか?あなたが見たいかもしれません

おかげ

+0

を行うだろうが、あなたが対処するのSimpleXMLを使用することができます「FILE_IGNORE_NEW_LINES」を使用する必要がありますファイルと一緒に。また、このコードはメモリ効率が悪く、fgets()を使ってファイルを1行ずつ読みやすくすることを忘れないでください。 –

答えて

0

使用trim()またはrtrim()(あなたはの先頭に空白を保持する場合文字列)を使って空白を取り除きます。

2

各ループ反復の先頭にある行でrtrim()を実行できます。

function getProductCount($path) 
{ 
    $count = 0; 

    foreach (file($path) as $raw_name) { 
     $name = rtrim($raw_name); 
     if($name == "<product>") 
     { 
      $count = $count + 1; 
     } 
    } 
    return $count; 
} 
+0

なぜ、downvoterを説明するのに気をつけますか? –

-2

どちらの正規表現(ラインで\ nの最後の発生をフェッチし、それを除去)、またはこのXMLでの場合は、単純な$name = substr($name, 0, -2)トリック

+0

または '$ name = substr($ name、0、strpos($ name、" \ n "))' – Cystack

+0

複雑で少し畳み込まれています。 :-( –

関連する問題