我正在尝试读取URL中传递的变量/值。
作为一项实验,我从2个简单文件开始。
test.php的
<?php
//option1
//include "http://myhost.com/test2.php?tempvar=testonly";
//option2
//$tempvar = "testonly";
//include "http://myhost.com/test2.php";
//option3
$tempvar = "testonly";
include ("test2.php)";
?>
test2.php
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
console.log(getURLParameter("tempvar"));
$("#test").html(getURLParameter("tempvar"));
function getURLParameter(name) {
return (decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.search.toLowerCase())||[,""])[1].replace(/\+/g, '%20'))).toUpperCase()||"";
}
});
</script>
<div id="test"><?php echo tempvar; ?></div>
一些观察结果:
如果我从浏览器标签中调用http://myhost.com/test.html?tempvar=testonly,它可以正常工作(即在页面上显示testonly)
如果我从浏览器中拨打http://myhost.com/test.php,我的页面上就不会显示“testonly”。所以看来我的getURLParameter javascript函数没有找到通过include传递的tempvar。 根据include manual (example 3),这应该有效。
只有option3适用于我的test.php但在我的情况下,这对我来说没用,因为test2.php可以在另一个主机中。并且有可能test2.php可以被其他编程语言替换,如java(.jsp)或coldfusion,甚至只是普通的HTML和DB通信是通过AJAX调用来处理的。
根据phpinfo,服务器使用的是PHP 5.1.6。也许我需要一个特定的PHP扩展来使它工作?
非常感谢
答案 0 :(得分:1)
更改
<?php echo tempvar; ?>
要
<?php echo $tempvar; ?>
顺便说一句,您只是声明一个变量并包含第二个文件。如果要将变量从一个页面传递到另一个页面,则需要使用:
取决于您如何传递变量(GET或POST)
<?php echo $_GET['tempvar'];?>
<?php echo $_POST['tempvar'];?>
或者您可以同时使用
<?php echo $_REQUEST['tempvar'];?>