【问题标题】:Get a page's source with PHP, manipulate with JavaScript使用 PHP 获取页面的源代码,使用 JavaScript 进行操作
【发布时间】:2017-09-24 15:49:07
【问题描述】:

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 时遇到问题。)

【问题讨论】:

    标签: javascript php jquery dom html-parsing


    【解决方案1】:

    您可以运行一个 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); }});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-08
      相关资源
      最近更新 更多