2011-11-21 4 views
5

나는 다음과 같은 예에 따라 내 코드의 문자열이 : 충분히PHP 문자열 < and > 문자

<?php 
$find = '<tag'; 
$string = 'blah blah <tag=something>'; 
?> 

간단한,하지만 내가 문자열을 에코 할 때, 그것은 < 또는 좋아하지 않는 것> 문자. 모든 그건 얻을 echo'ed은 다음과 같습니다

ㅋ ㅋ ㅋ ㅋ

그래서, 기본적으로 내가 그들을 PHP에서 작동하지만 정확히 어떻게 확실하지 메신저 얻을 이러한 문자를 이스케이프 할 필요가 같은데요. 그래서 내가 언제든지 화면에 < 및> 문자를 표시 할 필요가 없습니다

<include="filename.html"> 

을 : 내가 사용하여 HTML에 있도록 파일을 파일을 포함 할 수있다하는 템플릿 시스템이 사용하고 파일을 읽고이 태그의 인스턴스를 찾아서 마술을해야합니다. 그 부분은 모두 작동하지만, 작동하지 않는 것보다 많거나 적은 연산자를 포함하는 문자열 일뿐입니다.

아이디어가 있으십니까?

+0

페이지의 소스를 보거나 브라우저에서 표시되는 시각적 결과 만보고 있습니까? –

+0

< and >은 화면에 표시 할 필요가 없으며 단순히 문자열 변수에 저장됩니다. – Amo

+0

가능한 복제 [PHP에서보다 작거나 큰 기호로 인쇄] (http://stackoverflow.com/questions/6916023/printless-than-and-greater-than-symbols-in-php) – mario

답변

3

HTML로 바꾸지 않으려면 HTML 문자를 사용해야합니다.

그렇게 : 당신은 그래서

echo htmlspecialchars("<hello>"); 
+4

참조한 PHP 문서에서 : * 데이터베이스 쿼리 등에서 인용해야하는 문자 앞에 백 슬래시가있는 문자열을 반환합니다. *이 부분과 관련된 부분은 무엇입니까? 문제? –

+0

웁스! @David 맞습니다 – tekknolagi

+0

이 함수는 '<'대괄호에 전혀 영향을 미치지 않습니다. 이것은 '및 "내부 문자열을 이스케이프 처리하기위한 것입니다. –

1

당신은, 당신이 HTML 마크 업을 생성 할 수 PHP와 있습니다 .. < 브래킷을 탈출

8

htmlspecialchars 기능을 사용할 수 있습니다 HTML 요소 문자 (< &>)를 구분하는 방법을 찾으십시오. HTML에는 HTML entities이라는 특수 문자 시퀀스가 ​​있습니다. 그것들은 앰퍼샌드, 일종의 속기 및 세미 콜론의 끝으로 설명됩니다.

다음은 몇 가지 예입니다 : 거의 모든 문자가 같은 개체로 표현 될 수

&gt;  : > (greater-than) 
&lt;  : < (less-than) 
&amp; : & (ampersand) 
&raquo; : » (right angle quote marks) 
&eacute; : é (e acute) 

,하지만 빠르게 지루한 가져옵니다. < 및 > 개를 기억하고 URL에 &을 기억하면됩니다.

귀하의 의도가 소문자보다 큼 /보다 큼 기호를 표시하려는 경우 코드를 다시 작성해야합니다.

<?php 
$find = '&lt;tag'; 
$string = 'blah blah &lt;tag=something&gt;'; 
?> 

다른 답변에서 언급 한 바와 같이, 당신은 변수에 문자를 변환하는 기능 htmlspecialchars()을 사용할 수 있습니다 (예를 들어, 사용자의 입력에서).

<?php echo htmlspecialchars($string); ?> 

은 웹 브라우저에서 볼 때 blah blah <tag=something>으로 표시됩니다. 예를 들어 명령 행에서 PHP를 사용했다면이 함수를 사용할 필요가 없습니다.

관련 문제