모두, 이 기능은 버그가 아니며 여기서 확실한 것을 간과하고 있습니다. 그러나 나는 그것을 볼 수 없다.strip_tags는 특정 문자열 내용을 만날 때 조기에 반환합니다 - 왜?
나는 짧은 태그에 싸여 일부 PHP 물건과 후추를 HTML로 구성되어 다음과 같은 코드를 가지고 :
$wtf = <<<WTF
<h1>First header</h1>
<p class="intro">First line of text</p>
<h2>Second header</h2>
<p>Second line of text</p>
<?= showImg ('image.jpg'); ?>
<p>Third line of text</p>
<?= showImg ('image.jpg', ''); ?>
<p>Fourth line of text</p>
<?= showImg ('image.jpg', '', ''); ?>
<p>Fifth line of text</p>
<?= showImg ('image.jpg', '', 'class="content"'); ?>
<p>Sixth line of text</p>
WTF;
echo strip_tags ($wtf);[/CODE]
이 출력 다음
First header
First line of text
Second header
Second line of text
Third line of text
Fourth line of text
Fifth line of text[/CODE]
당신이 여섯 번째를 볼 수 있듯이 텍스트 행은 출력에 포함되지 않습니다. 범인은
<?= showImg ('image.jpg', '', 'class="content"'); ?>
또는 오히려 showImg() 호출의 세번째 파라미터 선행하는 라인이다. strip_tags()가이 부분을 만나는 순간, 오류 메시지를 표시하지 않고 종료하고 지금까지 처리 된 텍스트를 반환하기 때문에 어떤 식 으로든 처리 할 데이터의 끝에 도달했다고 생각하게됩니다.
왜?
덧붙여 말하자면, 실행할 때 비트 자체가 정상적으로 작동하고 전체 오류보고도 구문 관련 경고 나 오류를 생성하지 않기 때문에 유효하고 허용되는 구문이라고 생각합니다. 예, 저는 짧은 태그를 사용하는 것이 좋은 아이디어인지 아닌지에 대한 반 종교적인 토론을 알고 있습니다 만, 지금은 그것을 사용하고 있습니다. 왜 제가 알고 싶은 것은 strip_tags가 그 세 번째 매개 변수를 만났을 때 조기에 반환하는 이유입니다. showImg() 호출.
Google, 다른 포럼 및 StackOverflow에서 검색 한 결과 깨달음을 얻지 못했습니다. 아무도 나에게 여기에 무슨 일이 일어 났는지 말해 줄 수 있습니까? 고마워요. 대단히 감사하겠습니다!
// 프랭크