【问题标题】:PHP, getting variable from another php-filePHP,从另一个 php 文件中获取变量
【发布时间】:2012-10-30 08:23:55
【问题描述】:

所以我想知道当变量名在多个 php 文件中使用时,是否可以从特定的 php 文件中获取变量。 一个例子是这样的:

<header>
 <title>
  <?php echo $var1; ?>
 </title>
</header>

page1.php 有$var1 = 'page1' page2.php 有$var1 = 'page2'

footer.php 应该有&lt;a href=""&gt;$var1 from page1&lt;/a&gt;&lt;a href=""&gt;$var1 from page2&lt;/a&gt;

好吧,这个例子有点抽象,但我尽量简短。我想你明白我的意思!所以它是我所追求的页脚!有什么解决办法吗?

【问题讨论】:

标签: php


【解决方案1】:

可以,但是最后一个包含的变量会覆盖第一个包含的变量:

myfile.php

$var = 'test';

mysecondfile.php

$var = 'tester';

test.php

include 'myfile.php';
echo $var;

include 'mysecondfile.php';
echo $var;

输出:

测试

测试者

我建议使用不同的变量名。

【讨论】:

  • 也就是说,这真的不可能吗?对于这个东西没有必要,只是会给我更整洁的代码!
  • 问题可能出在您的设计上。你到底想做什么?
  • 嗯,我试图在两个不同的位置回显相同的文本,一个在实际页面内,一个在通用页脚 (footer.php) 上。基本上我使用变量来轻松更新!
【解决方案2】:

您还可以使用会话来传递少量信息。您将需要 session_start();在使用会话的 PHP 页面的顶部,否则变量将无法访问

page1.php

<?php

   session_start();
   $_SESSION['superhero'] = "batman";

?>
<a href="page2.php" title="">Go to the other page</a>

page2.php

<?php 

   session_start(); // this NEEDS TO BE AT THE TOP of the page before any output etc
   echo $_SESSION['superhero'];

?>

【讨论】:

  • 我真的不明白为什么这会降低选票。这是 OP 可能没有考虑的包含的完全有效的替代方案
  • 需要先访问'page1.php'。将会话用作伪全局命名空间可能会非常痛苦。
【解决方案3】:

在第二页使用include 'page1.php' 是一种选择,但它会生成未定义变量的警告和错误。
您可以通过三种方法在另一个 php 文件中使用一个 php 文件的变量:

  • 使用会话将变量从一个页面传递到另一个页面
    方法:
    首先您必须使用 php 命令在两个文件中启动会话

    session_start();
    然后在第一个文件中考虑你有一个变量
    $x='var1';

    现在使用以下方法将 $x 的值分配给会话变量:
    $_SESSION['var']=$x;
    现在在任何其他 php 文件中获得价值:
    $y=$_SESSION['var'];//$y 是任何声明的变量

  • 使用 get 方法并在点击链接时获取变量
    方法

    &lt;a href="page2.php?variable1=value1&amp;variable2=value2"&gt;clickme&lt;/a&gt;
    通过 $_GET 函数获取 page2.php 文件中的值:
    $x=$_GET['variable1'];//value1 be stored in $x
    $y=$_GET['variable2'];//vale2 be stored in $y

  • 如果您想使用按钮传递变量值,您可以通过以下方法使用它:

    $x='value1'
    &lt;input type="submit" name='btn1' value='.$x.'/&gt;
    在第二个 php
    $var=$_POST['btn1'];

【讨论】:

    【解决方案4】:

    您也可以使用 file_get_contents

     $url_a="http://127.0.0.1/get_value.php?line=a&shift=1&tgl=2017-01-01";
     $data_a=file_get_contents($url_a);
    
     echo $data_a;
    

    【讨论】:

    • 这会将整个文件作为字符串读取...要获取特定变量的值需要额外的处理。
    • 看到一些“额外处理”会很有趣
    • 可能不是 echo $data_a;但你绝对可以从 $url_a 获取变量。作为 XML 或数组。先用var_dump查看,再用自己的方式解析。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-20
    • 1970-01-01
    • 2010-12-23
    • 1970-01-01
    相关资源
    最近更新 更多