2014-01-11 5 views
-1

정규 표현식에 문제가 있습니다. 다음 일반 표현식을 사용하여 html 태그 사이에서 텍스트를 가져옵니다.모든 HTML 태그를 PHP로 바꿉니다.

preg_replace("/<.*>/ix", " ", $input_lines); 

이 표현은

<a href="some.html">Somelink 

출력 잘 작동이
Somelink

이지만

<a href="some.html">Somelink</a> 

는 빈 출력을 보여줍니다 작동하지 않습니다.

내 실제 입력이

<a href="some.html">Somelink</a><anytag>Somelink</anytag> 

처럼 원하는 출력을 시작하거나 종료 태그는 공백으로 대체됩니다 여부를

Somelink Somelink 

모든 태그입니다.

그리고 작은 질문 : 문제를 이해하면

+5

왜 복제하려는 시도 ['strip_tags'] (http://php.net/strip_tags)? – mario

+0

단어 사이에 하나의 공백을 원합니다. – user2454340

답변

0

, 당신은 strip_tags

은 아마 당신의 정규식 .* 당신에게

+1

"SomelinkSomelink"로 출력을 생성합니다. – user2454340

+1

잘 사용하고 싶었던 곳에서 고마워했습니다. – user2454340

1

을하는 데 도움이 this link 볼이 방법을 사용할 수 있습니다 마지막 >

전에 의미

그래야합니다. .*?

더 안전하게, [^>]*

+0

"더 안전하게"... 속성 값에'>'을 삽입하기 전까지. –

+0

나는 html에 대해 많이 모른다. 어떤 속성 안에'>'을 넣을 수 있다면'[^>] *'는 사용하지 않아야합니다. –

0

시도해보십시오 strip_tags 기능. 대체

,이

$result = preg_replace('/[ ]{2,}/imx', ' ', $subject);

관련 문제