0

请看下面的代码:

<?php
$str1 = 'My Name Is : ';
$str2 = 'Dvid!';
echo $str1.$str2;
?>

只是一个简单的php代码。
我想编码(例如base64)这个php文件并使用编码的php文件而不是正常的。
所以上面代码的base64编码如下:

PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8+DQo=

现在我该如何使用那个编码的 php 文件?
我认为 eval() 函数就是答案!
所以我改变了这样的php文件以供使用:

<?php
$str = 'PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8+DQo=';
eval("base64_decode(\$str);");
?>

我的问题是我真的不知道为什么输出是空白的(白屏)?
我该如何解决这个问题?

编辑 1:
我在下面的答案之后使用 include 进行测试,但出现错误:

<?php
include 'data://text/plain;base64,PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8';
?>

和错误:
那个错误

重要说明:
我正在寻找一种不对服务器配置进行任何更改的方法,因为发布后我们无法访问远程主机...

编辑 2:
我删除了

<?php
?>

base64 编码的一部分-> 仍然有空白屏幕。

感谢关注

4

1 回答 1

1

这里有两个问题:

  1. 您正在评估代码:

    base64_decode($str);
    

    什么都不做。

  2. 里面还有<?phpand?>标签,eval处理不了。

因此,一个有趣的解决方案是使用includePHP data://URI:

include 'data://text/plain;base64,PD9waHANCiRzdHIxID0gJ015IE5hbWUgSXMgOiAnOw0KJHN0cjIgPSAnRHZpZCEnOw0KZWNobyAkc3RyMS4kc3RyMjsNCj8+DQo=';

请注意,您需要allow_url_include启用此功能才能正常工作。

于 2012-05-17T22:33:15.687 回答