2011-08-02 6 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()를 사용하여 파일을 한 줄씩 더 잘 읽어야합니다. –

답변

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

복잡하고 조금 복잡합니다. :-( –

관련 문제