2017-10-27 3 views
1

실제로는 HTML 페이지를 구문 분석하기 위해 simple_html_dom 구문 분석기를 사용하고 있습니다. 그런 다음 몇 가지 수정 작업을 수행했습니다. 그리고 지금 내 페이지에 그것을 보여주고 싶습니다.PHP 변수에 html 페이지를 저장하고 구문 분석하여 표시하는 올바른 방법

$page = file_get_html($url); 
foreach($page->find('div#someDIv') as $e) { 
    $e->style = 'display:none;'; 
} 

foreach($page->find('td#Something') as $e) { 
    $e->style = 'display:none;'; 
} 
foreach($page->find('td#Something2') as $e) { 
    $e->style = 'display:none;'; 
} 

$page->save(); 

?> 

지금은 에코와 보여,

<?php echo $page; ?> 

내용이 제대로 표시하지만 실행하기 위해 내 남아있는 스크립트를 방해하는 일부 자바 스크립트 오류를 ​​참조하십시오. 내가 볼

오류는 라인에있는

Uncaught SyntaxError: Invalid or unexpected token

Uncaught SyntaxError: Unexpected end of input

이러한 오류 어디에 내가 echo $page

때문에 이러한 오류를 방지 할 수있는 내용과 자바 스크립트가 할 수있는 아래를 보여줄 수있는 더 나은 방법이 있나요 처형되다.

가 업데이트 : 여기에 오류가 표시 , enter image description here

+2

가가 [mcve] –

+1

당신은 렌더링 된 출력을 표시해야합니다 제공하십시오 사용 찾으려면 –

+1

메모를 (최소한이 부분은 오류의 원인) 스크립트 내부에서 html 요소를 검색하면 정의되지 않은 vars, 누락 된 프레임 워크, 누락 된 html 요소 등 여러 가지 이유로 논리적으로 오류가 발생할 수 있습니다. 경우에 따라 스크립트 태그를 제거 할 수 있습니다. – Kaddath

답변

0

PHP는 HTML의 DOM 작업 할 자신의 클래스가, DOMDocument을했다. 귀하의 예 :

$doc = new DOMDocument(); 
$doc->loadHTMLFile($url); 

는 DOM 요소가 XPath

$xpath = new DOMXpath($doc); 

$elements = $xpath->query("*/td[@id='Something']"); 
if (!is_null($elements)) { 
    foreach ($elements as $element) { 
    $element.setAttribute('style','display: none;'); 
    } 
} 

echo $doc->saveHTML(); 
+0

youtube와 같은 삽입 된 코드를 저장하는 데 사용할 수 있습니까? 납치해서 죄송합니다. 코드를 저장하고 표시해야하지만 자바 스크립트를 삽입 할 수 있는지 또는 다른 것이 있는지 걱정됩니다. –

+0

이 코드는 서버에 포함 된 스크립트가 페이지에 포함되어 있으면 유효한 HTML을 만듭니다. 다음과 같은 오류가 발생합니다. Uncaught SyntaxError : 유효하지 않거나 예기치 않은 토큰, Uncaught SyntaxError : 포함 된 비디오에 필요한 것은 무엇입니까? –