【发布时间】:2013-03-24 09:47:33
【问题描述】:
对于学校的一个项目,我正在尝试制作一个网站,该网站可以以比现在更漂亮的方式显示您的成绩。 我已经能够使用 cURL 登录到该站点,现在我想以字符串形式获取成绩,以便可以使用 PHP 对其进行编辑。 唯一的问题是,当 cURL 没有被获取成绩的 javascript 编辑时,它会获取 html 源代码。
所以基本上我想要你在字符串中打开 firebug 或检查器时得到的代码,以便我可以用 php 编辑它。
有没有人知道如何做到这一点?我看过一些帖子说你必须等到页面加载完毕,但我不知道如何让我的网站等待另一个第三方网站加载。
我正在等待执行并且我想要结果的代码是这样的:
<script type="text/javascript">
var widgetWrapper = $("#objectWrapper325");
if (widgetWrapper[0].timer !== undefined) {
clearTimeout( jQuery('#objectWrapper325')[0].timer );
}
widgetWrapper[0].timer = setTimeout( function() {
if (widgetWrapper[0].xhr !== undefined) {
widgetWrapper[0].xhr.abort();
}
widgetWrapper[0].xhr = jQuery.ajax({
type: 'GET',
url: "",
data: {
"wis_ajax": 1,
"ajax_object": 325,
'llnr': '105629'
},
success: function(d) {
var goodWidth = widgetWrapper.width();
widgetWrapper.html(d);
/* update width, needed for bug with standard template */
$("#objectWrapper325 .result__overview").css('width',goodWidth-$("#objectWrapper325 .result__subjectlabels").width());
}
});
}, 500+(Math.random()*1000));
</script>
【问题讨论】:
-
您无法从 PHP 获取用 javascript 生成的内容 - 这就是为什么它称为服务器端和客户端 - 服务器端只能接受服务器提供的服务,客户端处理客户端数据 - 你可以做什么是嗅探那个页面并调用ajax js代码正在调用的页面——然后获取响应并在服务器中处理它
-
如果我理解正确,这个过程与你想做的相反。 PHP 在任何客户端之前执行。您必须在另一个页面上提取信息并使用 ajax 调用之类的方法来收集信息并显示它。或者从一侧提取信息,然后将其放入数据库中,然后将其推送到您要查看的页面。
-
这就是像phantomjs或zombiejs这样有用的地方
-
您将无法使用 PHP 对其进行编辑,因为 PHP 是在服务器中执行的(远离您的计算机),而 HTML/Javascript 只是代码,直到它到达您的浏览器(此时 PHP已经解决了,无法执行)
-
@David:哈哈,我不是要截取我的成绩,我只是想显示它们。无需担心;)
标签: php javascript html curl