2010-08-15 5 views
3

사용자가 URL을 새 줄로 구분하여 입력하는 텍스트 영역 양식 필드가 있습니다. 이 textarea 필드의 각 줄을 < li> 태그로 감쌀 수 있습니까?li 태그로 텍스트 영역의 각 줄을 감싸는 방법? PHP

그래서 나는이 같은 것으로 현장의 출력을 필요 :

<li>some.url.com</li> 
<li>some.url.com</li> 
<li>some.url.com</li> 
<li>some.url.com</li> 
<li>some.url.com</li> 

사람이 PHP와이 제발 실현하려 누가 알고 있나요?

답변

11
$textareaData = '<li>'.str_replace("\n","</li>\n<li>",trim($textareaData,"\n")).'</li>'; 

편집

뿐만 아니라 모든 빈 줄을 제거하는 수정 된 항목 :

$textareaData = '<li>'.str_replace(array("\r","\n\n","\n"),array('',"\n","</li>\n<li>"),trim($textareaData,"\n\r")).'</li>'; 
+0

내 생각을 정확하게 – Chris

+0

감사합니다 마크 :이

echo preg_replace('/^(.+)(\s*)$/m', '<li>$1</li>', $text); 

출력과 같은 약 – Brigante

+0

감사합니다! 완벽하게 작동합니다. 대단히 감사합니다 !! – Brigante

0

당신이 테스트의 일환으로 비어 있지 않은 라인을 확인할 수 있습니다 정규 표현식을 사용 :

$li_text = preg_replace('/^(.+)$/', '<li>$1</li>', $_POST['textarea']); 

그런 식으로 사용자가 추가로 새로운 입력 내용이 끝날 때 (또는 내부의 아무 곳이나) 줄을 뽑으면 추가 빈 목록 항목을 얻을 수 없습니다. 이 위대한 작품을

<li>dsadsa 
</li> 
<li>dsdsa 
</li> 
<li>dsadsad 
</li> 
<li>dsadsadsad 
</li> 
<li>vcxvxcvxvcxvcx 
</li> 
<li>fdsfdsfdsfs 
</li> 
+0

이것은 좋지만 작동시키지는 못합니다. li 태그를 텍스트 영역에서 가져 오는 것은 아니지만 하드 코드 된 데이터가 작동합니다. Btw 그 차이가 있다면 변수로 텍스트 영역에서 오는 콘텐츠가 있어요. – Brigante

+1

업데이트 : 텍스트 영역에 단 한 줄의 텍스트 만 있으면 제대로 작동합니다. 1 줄 이상인 경우 li 태그를 추가하지 않습니다. – Brigante

+0

다중 행 정규식 옵션을 추가하도록 편집되었습니다. – Mazuhl

1

그리고 무슨 이런 건 (좋은,하지만 유용한되지 않음) 일 것이다. 만약 내가 어떻게 든 비어있는 줄을 생략 할 수 있다면 그것은 완벽 할 것이다!
관련 문제