2011-01-19 2 views
1

나는 다음과 같은 PHP (버전 5.3.0) 코드가 메아리 :

내가 기대로 작동
$URL = "http://www.example.com/"; 

IF ($URL != "") 
try { 
    $curl = curl_init(); 
    curl_setopt ($curl, CURLOPT_URL, $URL); 
    curl_setopt ($curl, CURLOPT_RETURNTRANSFER, true); 
    $html = curl_exec ($curl); 

    $array = str_split($html); 

    for ($i=0;$i<20;$i++) echo $array[$i]," "; 

} 
catch (Exception $e) { 
     print $e->getMessage(); 
} 

표시 :

<! D O C T Y P E 시간 t의 m 리터 P의 U의 B에 L I

비록 I는 라인 수정할 경우 :

for ($i=0;$i<20;$i++) echo $array[$i]; 

다음 I 아무것도 표시 얻을한다. 두 번째 경우에는 아무 것도 표시되지 않습니다.

+1

, 당신은 단지 고장 문자열을 찾고 있다면,'사용하여 $ html로 {$ I} 시도'(이 그것을 제공 C 스타일 문자열보다 전통적이며 개별 문자열 문자를 참조 할 수 있음). –

답변

1

이제 브라우저가 html 출력을 렌더링하려하고 "빈 페이지"가 ​​표시 될 수도 있습니다. "소스보기"옵션을 사용해 보셨습니까? 이

for ($i=0;$i<20;$i++) echo htmlspecialchars($array[$i]); 
+0

네, 맞습니다. "소스보기"에서 에코 부분을 볼 수 있습니다. 그래서 브라우저에 표시해야합니다. – tucson

+0

이 함수가 필요하다고 생각합니다 : http://it.php.net/htmlentities –

+0

모든 HTML 태그를 제거하지 않으면 'strip_tags' http://it.php.net/manual/en/function을 사용할 수 있습니다. 스트립 태그.ph –

3

아마도 브라우저가이 부분적인 doctype을 좋아하지 않기 때문일 수 있습니다. 무엇이든하기 전에 header("Content-Type: text/plain")을 추가하십시오.

+0

헤더 ("Content-Type : text/plain")와 함께 "헤더 정보를 수정할 수 없습니다 - 이미 보낸 헤더가" – tucson

+0

입니다. 출력 전에 추가해야합니다 (에코처럼) – sloonz

0

변경 브라우저에 의해 해석되는 HTML 태그의 유효한 시작. 그러므로 당신은 그것을 보지 못합니다.

당신은 echo htmlentities($array[$i]);를 사용하여 비행에 엔티티를 변경하거나 당신의 HTML에있는 모든 태그의 시작을 대체 할 수 $html = str_replace('<','&gt;',$html);


편집 : 엔티티에 익숙하지 않은 사람들에게 보조 노트로
:

&gt;<을 나타내는 html 요소이며 &lt;>입니다. 그들은 각각 greater thanless than하고, 그렇지 않으면 당신은 출력을받을 수 있나요 브라우저

+0

감사합니다.이 코드는 저에게 효과적이지는 않지만. – tucson

+0

@tucson : 여기서 "작동하지 않는다"는 의미는 무엇입니까? 프로그래밍 문제를 설명 할 때 구체적으로 설명하십시오. –

3
for ($i=0;$i<20;$i++) echo $array[$i]; 

윌 출력에

+0

입력 해 주셔서 감사합니다. html 텍스트의 모든 단어 목록을 추출하고 모든 태그와 코드를 제거하려고합니다. 그래서 이것은 문자로 html 문자를 처리하는 첫 번째 단계였습니다. '>'은 무엇입니까? – tucson

1

에 의해 해석 될 수 <를 인쇄 할 수있는 다른 방법을 제공 나타내고 있지만, 출력은 <DOCTYPE 선언의 시작이다. 왜이 결과물이 눈에 띄게 보이길 기대합니까? 브라우저에서 "소스보기"를하면 해당 소스가 표시됩니다.

0

시도 사용 : 대신

echo $array[$i]." "; 

: 또한

echo $array[$i]," "; 
관련 문제