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

Get a page's source with PHP, manipulate with JavaScript

提问人:Naltroc 提问时间:4/27/2017 最后编辑:PyromonkNaltroc 更新时间:4/27/2017 访问量:75

问:

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>

但是,每当我回显到脚本标签时,它就会立即被解释为 HTML,并且该页面成为对实际站点的实时嘲弄。$src

//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 的任何建议?

(无论如何,我都希望它作为没有浏览器的脚本文件运行,但在文件中加载jQuery时遇到问题。thesaurus.js

javascript php jquery dom html 解析

评论


答:

0赞 Pyromonk 4/27/2017 #1

您可以运行 php 脚本来获取文件内容并将结果回显到只读/禁用的 textarea,然后通过 ajax 查询该 php 文件以在页面上显示生成的 textarea。

例如,输出 .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); }});