簡體   English   中英

使用PHP獲取頁面的源代碼,使用JavaScript進行操作

[英]Get a page's source with PHP, manipulate with JavaScript

我最后知道,JavaScript無法獲取任意頁面的源代碼。 但是PHP可以很容易地實現。

//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 thesaurus.com@strong
<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時遇到了麻煩。)

您可以運行php腳本來獲取文件內容,並將結果回顯到具有只讀/禁用狀態的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); }});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM