如何使用 include 函数通过 URL 将变量/值传递给另一个 PHP 文件(通过 HTTP)? (PHP)
Posted
技术标签:
【中文标题】如何使用 include 函数通过 URL 将变量/值传递给另一个 PHP 文件(通过 HTTP)? (PHP)【英文标题】:how do I pass a variable/value via URL to another PHP file (via HTTP) using the include function? (PHP) 【发布时间】:2015-03-28 02:42:58 【问题描述】:我正在尝试读取在 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 函数没有找到通过包含传递的 tempvar。 根据include manual (example 3),这应该可以工作。
只有 option3 在我的 test.php 中有效,但在我的情况下,这对我来说没用,因为 test2.php 可以在另一个主机中。并且有可能 test2.php 可以替换为另一种编程语言,如 java (.jsp) 或 Coldfusion,甚至可以通过 AJAX 调用处理纯 HTML 和 DB 通信。
根据phpinfo,服务器使用的是PHP 5.1.6。也许我需要一个特定的 PHP 扩展来使它工作?
非常感谢
【问题讨论】:
【参考方案1】:改变
<?php echo tempvar; ?>
到
<?php echo $tempvar; ?>
顺便说一句,您只是在声明一个变量并包含第二个文件。如果要将变量从一个页面传递到另一个页面,则需要使用:
取决于您如何传递变量(GET 或 POST)
获取
<?php echo $_GET['tempvar'];?>
发布
<?php echo $_POST['tempvar'];?>
或者你可以同时使用
<?php echo $_REQUEST['tempvar'];?>
【讨论】:
以上是关于如何使用 include 函数通过 URL 将变量/值传递给另一个 PHP 文件(通过 HTTP)? (PHP)的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 URL 将变量过滤器添加到 Drupal 6 视图?