2010-05-06 3 views
0

심포니 프로젝트의 모든 필드 게터을 위해 휴식을 HTML로 나누기와 나는 현재이 있습니다변환 라인 내가 심포니 프로젝트를 진행하고

<?php echo preg_replace('/\n/','<br />', $review->getComments()); ?> 

과 매우 모든 게터는 HTML을 추가 할 수 있도록하고 싶습니다 줄 바꿈 그래서 preg_replace 함께 내 코드를 후추 필요가 없습니다. $ object-> getFieldname 메소드는 자동으로 작동하므로 전역으로 새 메소드를 추가하도록 어딘가에 확장하려고합니다. 가장 좋은 방법은 무엇입니까?

답변

1

나는 좋은 생각이 같은 무언가를하는 당신의 검토 객체 위에 getCommentsHtml() 메소드를 추가 할 수있을 거라고 생각 HTML을 사용하여 서식을 지정하려면 review-> getCommentsHtml()을 사용하십시오. 또한 Charlie가 말했듯이, str_replace가 정규 표현식을 사용하여 <으로 변경하는 것과 같이 사용하는 것이 더 나을 것입니다. br/>은 약간의 과잉 공격 일 수 있습니다 :)

그래서 원하지 않으면 코드를이 대체물로 흩 뜨려 놓으십시오. 형식을 잘 지정하고 싶은 클래스에 도우미 메서드를 두는 것이 가장 좋은 방법이라고 생각합니다.

+0

이것은 내가 원하는 바에 가깝다. 내 질문에 약간의 수정을하지 않은 것에 대해 사과한다. 나는 그것을 업데이트했다. – Ben

1

방법에 대해 :

return preg_replace('/\n/','<br />', $this->getComments()); 

그럼 당신이 사용할 수있는 $ :

str_replace("\n",'<br />', $review->getComments()); 
5

nl2br()에 대한 모든 기능을 잊어 버린 것처럼 보입니다. 정확히 PHP에서 그렇습니다.

nl2br($review->getComments()); 

편집 :이 글을 쓰는 시점에서는, 다른 사람은 preg_replace()를 사용합니다.

+0

nl2br> str_replace : 가독성 = 더 읽기) –

관련 문제