从其他 URL 复制 PHP 文件而不执行代码



当我将PHP文件从一个URL复制或复制到另一个URL时,PHP中的内容会执行。php文件包含mysqli查询。

我尝试了 2 种方法,file_get_contents 和 php 的默认复制函数。两者都将文件从一个传输到另一个,但两次复制的 PHP 文件都显示:

<br />
<b>Fatal error</b>:  Call to a member function query() on a non-object in  <b>/home/uu/domains/domain.net/public_html/library/folder/index.php</b> on line <b>2</b><br />

方法一:

if ( copy($from.$element_file['file'], $to.$element_file['file']) ) {
    chmod($to.$element_file['file'], 0777);
}

方法2:

$content = file_get_contents($from.$element_file['file']); 
$new_file = $to.$element_file['file'];
$handle = fopen($new_file, 'w');
file_put_contents($new_file, $content);

原因:我不是想入侵或窃取任何东西。我已经建立了一个外部库,其中包含在开发新网站时可以使用的文件,例如小模板(带有索引的目录.php,更少的文件和查询文件)。所有 php 文件都在同一台服务器上。

当您复制一个 URL 时,您正在复制该 URL 的服务器输出!
因此,脚本将执行(因为它应该执行以生成输出)。
要复制文件内容(脚本本身),您需要从文件服务器或其他提供文件输出的方法复制它。
如果文件位于同一服务器上,则应使用文件路径而不是 URL。
例如,如果您具有访问权限,则可以使用 CURL 访问目标服务器上的 FTP 并复制文件。

最新更新