PHP
是一种服务器端脚本语言,因此无法访问当前HTML
页面。它在HTML
发送到客户端浏览器之前被处理,因此parent.document
在处理脚本时甚至不存在。
如果您想将数据从HTML
页面传递到PHP
脚本,您可以使用HTML
<form>
或通过JavaScript
/JQuery
AJAX
请求来实现。
例如,以下代码会将 的值传递input
给PHP
脚本:
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
function pass(){
var value = $("input", parent.document.body).val();
$.ajax({
type: "POST",
url: "myscript.php",
data: { mydata: value }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
}
</script>
</head>
<body>
<input type="text" />
<button onclick="pass();return false;">Pass Value</button>
</body>
</html>
以及修改后的脚本(myscript.php):
<?php
$url = isset($_POST['mydata']) ? $_POST['mydata'] : '';
$curl_scraped_page = '';
if(!empty($url)){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$curl_scraped_page = curl_exec($ch);
curl_close($ch);
$curl_scraped_page = preg_replace("#(<\s*a\s+[^>]*href\s*=\s*[\"'])(?!http)([^\"'>]+)([\"'>]+)#",'$1'.$url.'$2$3', $curl_scraped_page);
}
echo $curl_scraped_page;
?>
我建议使用 $(id) 来检索 an<input>
而不是$("input",context)
.
例如
var value = $('#txt').val();
并且在HTML
:
<input type="text" id="txt" />
有关更多信息,JQuery.ajax
请参见此处。