【问题标题】:Get content of php file in PHP在 PHP 中获取 php 文件的内容
【发布时间】:2018-04-05 07:03:55
【问题描述】:

我正在使用 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();

这是文件.php

<?php echo "string"; ?>

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

非常感谢!

【问题讨论】:

  • 是否要运行文件中的代码?
  • 要执行文件的内容($data 是字符串类型),请使用eval()
  • 文件是否可以通过 http(s) 连接获得?然后你可以使用file_get_contents() 而不是ftp。否则你需要eval()
  • “正在获取php文件的内容”。如果您需要其他东西,您必须告诉我们。
  • @SubashKharel 我想得到 php 文件的结果,在这种情况下是文件回显的“字符串”文本。

标签: php ftp ob-get-contents


【解决方案1】:

非常难看,但可能会成功

ob_start();
$result = ftp_get($ftp_conn, "localcopy.php", "file.php", FTP_BINARY);
include("localcopy.php");
$data = ob_get_contents();
ob_end_clean();

【讨论】:

    【解决方案2】:

    替换

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

    有了这个:

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

    【讨论】:

    • file.php 不是本地的,它在一个 ftp 服务器上
    • 然后你可以使用eval()函数,但是它可能很危险
    • 但获得 php 文件结果的最佳方法是将其用作 API。这意味着您使用 curl() 函数并在放置的服务器上运行脚本。
    • 为什么不两者都做呢?下载文件并将其存储在某处然后require 吗?这样你就避免了 eval
    猜你喜欢
    • 2015-10-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2016-03-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    相关资源
    最近更新 更多