2017-04-27 9 views
0

JavaScript는 임의의 페이지의 소스 코드를 가져올 수 없습니다. 하지만 PHP는 꽤 간단 할 수 있습니다.PHP로 페이지 원본 가져 오기, JavaScript로 조작하기

//get page source code with php 
<?php 

url = 'http://www.thesaurus.com/browse/strong?s=t'; 
$src = file_get_contents($url); 

?> 

PHP는 DOM을 조작 잘 아니지만, jQuery를 그 위해 중대하다!

내가

//manipulate source code with javascript 
<script> 
html = '"' + <?php echo $src;?> + '"'; 
listItems = $(html + " li"); 
printLists = ''; 
$.each(listItems, function(ind, el) { 
    printLists += el.innerHTML + "<br/>"; 
}); 

document.write(printLists); 

</script> 

하지만, 스크립트 태그에 $src 에코 언제나처럼 뭔가를하고 싶은, 그것은 바로 HTML로 해석하고 페이지는 실제 사이트의 라이브 조롱하게됩니다. 정말 복사 된 소스 코드의 전혀 표시하지 않으려는하지만

//Actually just shows me [email protected] 
<body> 
    <div id="holder" style="display: none;"></div> 

<script> 
    holder = $("#holder"); 
    nodeNames = []; 
    html = $.parseHTML(<?php echo $src;?>, holder, false); 
</script> 
</body> 

문구 '가상 DOM은'오른쪽 소리가 난다. 콘솔에서 스크립트를 실행하고 용어에 대한 몇 개의 시소러스 사이트를 검색하고 결과를 가져 와서 로컬 시소러스 스크립트가 액세스하는 JSON에 저장하기 만하면됩니다.

나는 다른 모든 일을하는 방법에 대한 확고한 생각을 가지고 있으며, 이것이 까다로운 부분이 될 것이라고 기대하지 않았습니다!

브라우저가 HTML을 구문 분석하지 못하도록하는 방법에 대한 제안 사항이 있으십니까?

은 (어쨌든 단지 브라우저없이 스크립트 파일로 실행하려면이 옵션을 선호하지만 데 문제가 thesaurus.js 파일에 jQuery를 로딩을했다. 것)

답변

0

당신은 파일 내용을 얻을 수있는 PHP 스크립트를 실행할 수하고 결과를 에코 readonly/disabled가 설정된 textarea에 다음 ajax를 통해 php 파일을 쿼리하여 결과 textarea를 페이지에 표시합니다. 예를 들어

, output.php : 원본 파일에

<?php 
    $str = '<p>I am a paragraph.</p>'; 
    echo '<textarea readonly="readonly">'.$str.'</textarea>'; 
?> 

AJAX 호출 :

$.ajax({url: 'output.php', success: function(data) { $('#result').html(data); }});