使用PHP获取页面源代码,使用JavaScript进行操作

时间:2017-04-27 02:45:16

标签: javascript php jquery dom html-parsing

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>

短语'virtual DOM'听起来不对,但我真的不希望任何复制的源代码显示出来。我只想提取它的某些部分:从控制台运行脚本,在一些词库中搜索一个术语,获取结果,并将它们保存到本地同义词库脚本访问的JSON中。

我对如何做其他事情有一个坚实的想法,不要指望这是一个棘手的部分!

有关阻止浏览器解析HTML的任何建议吗?

(我更喜欢这个在没有浏览器的情况下作为脚本文件运行,但是在thesaurus.js文件中加载jQuery时遇到了麻烦。)

1 个答案:

答案 0 :(得分: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); }});