废弃代码无法在php中运行

时间:2014-09-24 12:17:11

标签: javascript php web-scraping

我正在尝试将网页内容抓到我的表单控件,没有功能我得到输出,但是当我创建功能并分配给按钮单击事件以显示文本框中的输出不起作用时,让我知道我在哪里搞砸了

<script type="text/javascript">
function Assign()
{
$html = file_get_contents("http://geoportaal.maaamet.ee/url/xgis-ky.php?ky=79401:006:0812");
preg_match_all('(<li.*?>.*?</li>)', $html, $matches);
$one=$matches[0][0];
document.getElementById("OutputField").value = $one;
}
</script>
<input id="OutputField" type="text" style="width:200px"/>
<input type="button" value="Assign Value" onclick="Assign()"/>

2 个答案:

答案 0 :(得分:2)

您在这里混合了两种不同的执行范例:

PHP在服务器端执行。这意味着托管代码的服务器会执行它。因此,PHP代码通常对客户端不可见。 php代码的执行由客户端请求触发,并且脚本的输出(例如由printf函数产生)被传递给客户端。

然而,Javascript是在客户端执行的。这意味着网站访问者的cpu实际上用于执行代码。代码对客户端100%可见。那么你在HTML文档中粘贴的脚本标签是在客户端执行的。它被客户看到。相反,PHP代码并不意味着直接粘贴在脚本标记中。

这些是非常概括的陈述,总是成立。但是,它们应该给你一个粗略的草图。 this thread中有一个非常好的答案可以帮助您更好地区分。 在继续之前,您一定要学习这些基础知识。

答案 1 :(得分:1)

首先,你必须分开你的html,php,javascript代码。 我改变了你的代码,你可以尝试一下。 如果以正确的方式使用它,它将起作用。

<?php
$html = file_get_contents("http://geoportaal.maaamet.ee/url/xgis-ky.php?ky=79401:006:0812");
preg_match_all('(<li.*?>.*?</li>)', $html, $matches);
$one=$matches[0][0];
?>

<script type="text/javascript">
    function Assign() {
        document.getElementById("OutputField").value = "<?=$one?>";
    }
</script>

<input id="OutputField" type="text" style="width:200px"/>
<input type="button" value="Assign Value" onclick="Assign()"/>

我希望它对你有所帮助。 你必须学习和学习。 ; - )