在PHP中获取php文件的内容

Get content of php file in PHP

提问人:ca hoang 提问时间:4/5/2018 更新时间:4/5/2018 访问量:365

问:

我正在使用 ftp_get 从 PHP 中的 FTP 获取 php 文件的内容。

ob_start();
$result = ftp_get($ftp_conn, "php://output", "file.php", FTP_BINARY);
$data = ob_get_contents();
ob_end_clean();

这是file.php

<?php echo "string"; ?>

但它显示的是php代码,而不是该php文件中的“echo”内容。有人这样做吗?

非常感谢!

php ftp ob-get-contents

评论

1赞 Subash Kharel 4/5/2018
是否要运行文件中的代码?
2赞 rollstuhlfahrer 4/5/2018
要执行文件的内容( 类型为 string),请使用 。$dataeval()
1赞 jeroen 4/5/2018
文件是否可通过 http(s) 连接使用?然后你可以用 ftp 代替。否则,您将需要.file_get_contents()eval()
0赞 Martin Prikryl 4/5/2018
正在“获取php文件的内容”。如果您需要其他东西,则必须告诉我们。
0赞 ca hoang 4/5/2018
@SubashKharel 我想要获取 php 文件的结果,在这种情况下是文件回显的“字符串”文本。

答:

2赞 Holger 4/5/2018 #1

很丑陋,但可能会成功

ob_start();
$result = ftp_get($ftp_conn, "localcopy.php", "file.php", FTP_BINARY);
include("localcopy.php");
$data = ob_get_contents();
ob_end_clean();
0赞 Cooluser 4/5/2018 #2

取代

$result = ftp_get($ftp_conn, "php://output", "file.php", FTP_BINARY);

有了这个:

require 'file.php';
$data = ob_get_contents();

评论

0赞 Holger 4/5/2018
file.php不是本地的,而是在FTP服务器上
0赞 Cooluser 4/5/2018
然后你可以使用 eval() 函数,但它可能非常危险
0赞 Cooluser 4/5/2018
但是获取 php 文件的最佳方法是将其用作 API。这意味着您使用 curl() 函数并在放置位置的服务器上运行脚本。
0赞 urban 4/5/2018
为什么不两者兼而有之呢?下载文件并将其存储在某个地方,然后呢?这样你就可以避免 evalrequire