2017-04-08 1 views
1

단어에서 마지막 문자를 제거하고 싶습니다. 나는 단어 파일이 : 나는 각 줄 끝에서 .을 제거하기 위해 노력하고PHP를 사용하여 문자열의 모든 줄에서 마지막 문자를 제거하는 방법은 무엇입니까?

hello. 
world 
welcome. 
home.. 
how. 
are. 
you 
any 
thing. 
else. 

합니다. 어떤 이유에서든 내 코드는 마지막 세계 else에서만 점을 제거하지만 나머지는 그대로 남겨 둡니다. 여기

내 코드입니다 :

$words = file('words.txt'); 

foreach($words as $word) 
{ 
    echo substr($word, 0, -1); 
    echo "<br />"; 
} 

내가이 문제를 해결할 수있는 방법 중 하나가 알고 있나요?

답변

1

각 줄의 마지막 기호가 줄 바꿈이기 때문입니다.

$words = file('words.txt'); 

foreach($words as $word) 
{ 
    echo substr(trim($word), 0, -1); // here we go 
    echo "<br />"; 
} 

또는 file 전화에 second argument을 추가합니다 : substr을하기 전에 trim를 수행

$words = file('words.txt', FILE_IGNORE_NEW_LINES); 

foreach($words as $word) 
{ 
    echo substr($word, 0, -1); 
    echo "<br />"; 
} 
+0

헬로우 u_mulder가 감사합니다. 귀하의 첫 번째 코드를 시도하고 그것은 효과가 있지만 도트가 아닌 마지막 문자를 제거했습니다. 내가 변경 : echo substr (trim ($ word), 0, -1) echo rtrim (trim ($ word), "."); 이제는 완벽하게 작동합니다. 감사합니다 – Gagarin

+0

'rtrim'을 사용하는 것도 좋은 생각입니다. 기꺼이 도와주세요. –

+0

은 두 번째 방법을 시도했습니다. 또한 substr 대신 rtrim과 잘 작동합니다. 다시 한 번 감사드립니다! – Gagarin

2

당신이 rtrim

RTRIM 사용할 수 있습니다 -의 끝에서 공백을 제거 (또는 다른 문자) 문자열

0

한 줄 file_get_contentspreg_replace 함수를 사용 용액 :

$new_contents = preg_replace("/(\w+)\.*([\r\n]|$)/", "$1</br>", file_get_contents("words.txt")); 
echo $new_contents; 

출력 : 답변을

hello 

world 

welcome 

home 

how 

are 

you 

any 

thing 

else 
+0

감사합니다. 아주 잘 작동합니다. – Gagarin

관련 문제