PHP将变量发送到file_get_contents()
作者:互联网
我希望能够通过file_get_contents()将一些变量发送到文件.
这是firstfile.php:
<?php
$myvar = 'This is a variable';
// need to send $myvar into secondfile.php
$mystr = file_get_contents('secondfile.php');
?>
这是secondfile.php:
The value of myvar is: <?php echo $myvar; ?>
我希望变量$mystr等于’myvar的值是:这是一个变量’
还有其他功能可以让你在PHP中执行此操作吗?
解决方法:
获取文件内容和运行脚本之间存在很大差异:
> include
– 此PHP指令将指定文件作为脚本运行,范围与进行包含调用的范围相同.因此,要将变量“传递”给它,您只需在调用include之前定义它们. include只能在本地使用(只能包含与PHP服务器在同一文件系统上的文件).
> file_get_contents
– 在本地获取文件时,这只会检索文件中包含的文本.没有完成PHP处理,因此无法“传递”变量.如果您在上面的示例中检查$myvar,您将看到它包含确切的字符串“<?php echo $myvar;?>” – 它还没有被执行.
但是,PHP通过允许file_get_contents引入“远程”文件的内容(一个互联网地址)来混淆一些事情.在这种情况下,概念是相同的 – PHP只是提取该地址中包含的任何内容的原始结果 – 但是PHP,Java,Ruby或该远程服务器上运行的任何其他内容可能已执行某些操作以产生该结果.
在这种情况下,您可以根据URL的规范(如果它是API或类似的东西)在URL中传递变量(称为GET请求参数).没有办法传递您选择的未指定在该远程服务器将处理的脚本中处理的变量.
注意:提到的“远程服务器”可能是你自己的服务器,但要小心,因为如果你真的不知道这一切是如何工作的话,这会使事情更加混乱(它成为第二个完全独立的请求).通常没有充分的理由这样做而不是使用include,即使它们可以实现类似的结果.
标签:file-get-contents,php 来源: https://codeday.me/bug/20190929/1832473.html